flex和java交互的三种方式之一:httpService

在该demo 中围绕执行的流程来作主线,进行记录:


1. 页面上的组件元素

    
        
            
            
            
            
            
            
          
    
2. 元素的click响应事件requestServer



		
	
注意:flexService将在下面的代码中出现


3. 声明httpService服务


		
		
			
				{this.add1.text}
				{this.add2.text}
			
		
注意: 1)url就是我们想调用的请求处理对象。因为在例子中用到的是struts2,所以这里命名为flexService.action,它的名称和struts.xml文件中action的名字相同。

2) resultFormat: 返回的结果类型; method:表示的请求提交方式。

3)result: 该属性标注的是处理返回结果的方法; 在flexServiceHandler(event)方法中,event参数的类型是ResultEvent,返回的结果值就封装在该对象中。

该方法在下面的代码中给出

4. 处理结果的回调函数flexServiceHandler(event)

private function flexServiceHandler(event:ResultEvent):void{
				var returnedData:String = String(event.result);
				
				this.result.text =returnedData;
}

注:1) event.result :得到返回结果,将返回的结果转型成String类型

        2)将处理后的返回结果赋值给对象。

5. 下面是服务器端的代码:

public class FlexAction extends ActionSupport{

	private int add1;
	
	private int add2;
	
	
	public int getAdd1() {
		return add1;
	}


	public void setAdd1(int add1) {
		this.add1 = add1;
	}


	public int getAdd2() {
		return add2;
	}


	public void setAdd2(int add2) {
		this.add2 = add2;
	}


	@Override
	public String execute()throws Exception{
		
		System.out.println("invoked!");
		
		int result = add1+add2;
		
		HttpServletResponse response =  ServletActionContext.getResponse();
		
		response.setContentType("text/plain; charset=utf-8");
		response.setHeader("Cache-Control", "no-cache");
		
		PrintWriter writer = response.getWriter();
		
		writer.print(result);
		
		writer.flush();
		//writer.close();
		
		return null;
	}
}

注意: 1) writer对象调用的print()方法,打印返回结果writer.print(result);并flush();

2)该方法应该还可以被封装(有时间了再处理)

6. 将该struts2的action对象在struts.xml文件中注册


		
		
	

以上就完成了flex+java 以httpService方式进行交互的小例子!













你可能感兴趣的:(flex)