日期:2014-05-16 浏览次数:20340 次
首先:新建一个java web项目,添加struts2的支持,配置好相关的xml文件:如下
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> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>?
?
struts配置文件:
?
<?xml version="1.0" encoding="gbk" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="struts" extends="json-default"> <action name="testAction" class="com.daodao.action.TestAction"> <result name="success" type="json"></result> </action> </package> </struts>?
?
其次:编写前台EXTJS,这里不在说明!请求方法:我这里使用的是AJAX请求:
?
Ext.Ajax.request({ url : 'testAction.action', method:'POST', success:function(response,options) { alert(eval("("+response.responseText+")")); }, failure:function(response,options){ alert(); } })
?编写后台action实现:
?
public class TestAction extends ActionSupport{ boolean success; List list; User user; public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String execute() throws Exception { this.success=true; user=new User(); user.setEmail("aaa"); user.setName("bbb"); user.setPass("ccc"); list=new ArrayList(); list.add(user); return SUCCESS; } public List getList() { return list; } public void setList(List list) { this.list = list; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
?OK这样就前台JS就可以得到一个JSON类型的数据了:
?
"{\"list\":[{\"email\":\"aaa\",\"name\":\"bbb\",\"pass\":\"ccc\"}],\"success\":true,\"user\":{\"email\":\"aaa\",\"name\":\"bbb\",\"pass\":\"ccc\"}}"
?对于这样一个字符串我们可以在前台使用JS内置函数eval()将其转换称JS对象,方便我们的使用
?
eval("("+response.responseText+")")
?根据本实例中的数据类型,转换过的js对象是这样的:一个数组,一个bool类型的success(这个属性后台是必须设置的,前台的会使用这个属性作为判断成功与否的标准!),详情请查看图片附件(JS对象.jsp)!
这样我们前台就可以随心所欲的使用各种数据了!
?
?
项目所需要的jar包:
?
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
struts2-core-2.3.4.jar
xwork-core-2.3.4.jar
json-lib-2.3-jdk15.jar
struts2-json-plugin-2.3.4.jar
?