Flex4通过HTTPService获取远程Struts2生成的xml数据

服务器端使用Struts2框架,其中xml使用dom4j进行封装的。客户端(flex/桌面应用)在打开时调用HTTPService定义的对象的send()方法进行服务器端请求。最终将获取到的xml数据填充到datagrid控件中。
1、客户端(flex)代码

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="userRpc.send()">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
[Bindable]
private var users:ArrayCollection=new ArrayCollection();

protected function userData_resultHandler(event:ResultEvent):void
{
// TODO Auto-generated method stub
users=event.result.users.user;
}

]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->

<fx:Model id="userModel" source="xml/inventory.xml"/>
<s:HTTPService id="userRpc" url="http://localhost:8080/FlexXmlTest/getUsersXml.action" result="userData_resultHandler(event)"/>
</fx:Declarations>
<!--<mx:DataGrid x="71" y="185" id="dateGrid1" dataProvider="{userModel.user}">-->
<mx:DataGrid x="71" y="185" id="dateGrid1" dataProvider="{users}">
<mx:columns>
<mx:DataGridColumn headerText="姓名" dataField="name"/>
<mx:DataGridColumn headerText="年龄" dataField="age"/>
<mx:DataGridColumn headerText="性别" dataField="sex"/>
</mx:columns>
</mx:DataGrid>
</s:WindowedApplication>
2、服务器端代码

package com.szf.action;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class GetUsersXmlAction extends ActionSupport {

public String execute() throws Exception {
// TODO Auto-generated method stub
Document document = DocumentHelper.createDocument();
Element usersElement = document.addElement("users");
Element userElement1=usersElement.addElement("user");
Element userElement2=usersElement.addElement("user");
Element name1Element1=userElement1.addElement("name");
Element age1Element1=userElement1.addElement("age");
Element sex1Element1=userElement1.addElement("sex");
name1Element1.setText("张三");
age1Element1.setText("25");
sex1Element1.setText("女");

Element name1Element2=userElement2.addElement("name");
Element age1Element2=userElement2.addElement("age");
Element sex1Element2=userElement2.addElement("sex");
name1Element2.setText("李四");
age1Element2.setText("28");
sex1Element2.setText("男");
System.out.println("***********************");
HttpServletResponse response=(HttpServletResponse)ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(document.asXML());
return null;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值