目标:
实现从flex页面向后台的服务框架(struts2)传输参数。
实现:
在flex页面中添加<HTTPService>标签,在事件触发向服务器发送请求时将数据加载在request中向服务器发送,其中的url属性填写服务器的请求路径(.../*.action一定要填相对路径,前面不要加"/"),这样的话struts2的action可以接收到相同名字的属性。
环境:
1.flex编辑使用 Flex Builder3.0.2.214193
2.struts2使用 MyEclipse6.5
3.服务器 Tomcat 5.5
------------------------------flex-------------------------------
flex页面:
其中:_url.action为用户定义的请求,该页面向struts2发送两个参数:userName,pswWord
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#f6f6f6" backgroundGradientColors="[#f6f6f6, #AA1220]" fontSize="12">
<mx:Label text="用户名:" x="23" y="61" id="txt"/>
<mx:TextInput id="userName" x="77" y="59"/>
<mx:Label text="密码:" x="35" y="91"/>
<mx:TextInput id="pswWord" x="77" y="89"/>
<mx:Button label="提交" click='my_HS.send()' x="185" y="121"/>
<mx:HTTPService id="my_HS" url="_url.action" method="post" >
<mx:request>
<userName>{userName.text}</userName>
<pswWord>{pswWord.text}</pswWord>
</mx:request>
</mx:HTTPService>
</mx:Application>
-----------------------------java----------------------------------
web.xml代码
服务器配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
struts.xml代码(放在src目录下)
服务器配置文件:其中的action的name属性一定要和服务器请求的属性一致,其后面的class属性要与java中Action的实体类的位置对应
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.action.extension" value="action,do,webwork" />
<package name="simple" extends="struts-default">
<action name="_url" class="test.action.GetUserName">
<result name="success">index.jsp</result>
</action>
</package>
</struts>
action代码
Action实体类:其中的属性名要与flex页面传来的参数名保持一致,并添加g&s方法。然后再在execute()方法里描述这个action具体需要做的事情。
最后的return返回值可以设成null,因为flex不会受struts的驱使跳转页面。
package test.action;
import com.opensymphony.xwork2.ActionSupport;
public class GetUserName extends ActionSupport{
public String userName;
public String pswWord;
public String getPswWord() {
return pswWord;
}
public void setPswWord(String pswWord) {
this.pswWord = pswWord;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String execute(){
System.out.println("there it is");
String s = getText(userName);
System.out.println(s+":"+pswWord);
return SUCCESS;
}
}
p.s. 如果不部署到eclipse上运行的话,_url填写完整的http协议路径
分享到:
相关推荐
Flex与Struts2的整合,不仅能够提升Web应用的用户体验,还能充分利用两种技术的优势,实现高效的数据处理和丰富的界面展示。通过本文的详细介绍,相信读者已经掌握了Flex与Struts2整合的基本步骤和原理,为实际项目...
综上所述,这个知识点涵盖了Flex客户端与Struts2服务端的交互,特别是关于二进制数据的传输。在实际开发中,这样的功能对于处理图像、文档或其他非文本数据的上传非常有用。通过阅读和理解提供的源码,开发者可以...
在Flex与Struts2的集成过程中,通常会采用AMF(Action Message Format)协议,这是一种二进制数据交换格式,能够快速高效地传输复杂的数据结构。在“UserInfoSys”中,AMF使得Flex与服务器之间的通信更加流畅,降低...
在Flex和Struts2之间,JSON用于序列化和反序列化对象,使得数据能在不同的平台之间高效传输。 实施步骤: 1. 创建Flex项目:首先,你需要创建一个新的Flex项目,并添加HTTP Service组件到主视图,配置其URL指向...
3. **AMF通信**:在Flex与Struts之间,通常使用Action Message Format (AMF)进行数据交换,它是一种高效的数据传输格式。需要熟悉 BlazeDS 或 GraniteDS 这样的AMF服务器,它们提供与Struts的集成。 4. **服务端...
Flex通过AMF(Action Message Format)协议与Struts进行通信,AMF是一种高效的数据交换格式,能快速地传输数据,减少网络延迟。 在“Hello_World”这个例子中,很可能是创建了一个基础的Flex前端界面,通过点击按钮...
通过使用Flex的ActionScript和AMF(Action Message Format)协议,可以实现与Struts后端服务的高效通信,提供低延迟的数据传输。AMF是一种二进制格式,用于在Flex客户端和服务器之间传输数据,相比传统的HTTP请求,...
Flex Struts2文件上传是一个常见的Web开发任务,它涉及到客户端与服务器端的数据交互,特别是涉及用户界面和后端服务之间的文件传输。Flex是Adobe开发的一个富互联网应用(RIA)框架,用于创建动态、交互式的用户...
Flex4和Struts2之间的通信通常通过HTTP协议进行,主要依赖于AMF(Action Message Format)或XML/JSON数据格式进行数据交换。AMF是一种二进制的轻量级数据交换格式,能高效地传输数据,尤其适合于大量数据交互的场景...
标题和描述中提到的"lib1 flex+struts2+spring+ibatis jar 完整的jar 需要下载本人资源lib2"是一个...Flex前端、Struts2作为MVC框架、Spring作为依赖注入和整体应用管理、以及iBatis作为数据层持久化工具的应用的基础...
通常会使用 BlazeDS 或 GraniteDS 这样的中间件来建立Flex与Struts之间的通信通道,这些中间件支持AMF(Action Message Format),这是一种高效的二进制协议,可以快速传输数据。 4. **AMF通信**:AMF是一种轻量级...
Struts2与Flex4的整合允许在Flex客户端和Struts2服务器端之间进行有效通信,实现数据的双向传输。 Hibernate3是一个对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。通过Hibernate,开发者可以用...
而"flex4+spring3+struts2+hibernate3+blazeds整合实例"是一个典型的Java Web开发架构,它结合了前端的Flex技术和后端的SSH(Spring、Struts2、Hibernate)框架以及BlazeDS作为数据传输层。以下将详细介绍这个整合...
Blazeds提供了AMF(Action Message Format)协议,可以高效地传输数据,支持实时双向通信,使Flex应用能够与Spring、Hibernate等后端框架无缝集成。 这个整合方案的核心在于通过Blazeds连接Flex前端和后端服务,...
2. **Struts框架**:尽管Struts2没有直接支持Flex,但可以通过使用第三方库,如FlexMXMLServlet或BlazeDS,将Struts2的Action暴露给Flex。这些库允许将Struts2的结果转换为AMF响应,使得Flex客户端可以直接调用...
Struts + LCD 增删查改2(jar)”是一个典型的Java Web开发项目,其中包含了Flex作为前端展示层,Hibernate作为持久化框架,Struts作为控制层,以及LCD(可能是LCDUI, Lightweight Client Data)作为数据交互组件。...
这个项目可能包含了一系列配置文件(如Spring的bean配置、Struts 2的配置、BlazeDS的配置等)、Action类(Struts 2的业务逻辑组件)、Service和DAO接口及其实现(Spring管理的业务层和数据访问层)、以及Flex的MXML...
5. **Struts2整合**:如果项目中使用了Struts2,可以创建一个Action,该Action调用服务层的方法获取图片数据,并在返回结果中包含这个数据。Struts2的`StreamingResult`或者自定义ResultType可以帮助我们正确地将二...