struts2发送json数组,js使用ajax接收。
2017-08-02 19:25
567 查看
1、使用到的jar包
1、commons-lang.jar2、commons-beanutils.jar
3、commons-collections.jar
4、commons-logging.jar
5、ezmorph.jar
6、json-lib-2.2.2-jdk15.jar
7、struts-json-plugin.jar(如果不用struts2就不用这个)
2、java文件
package meiko.server; import net.sf.json.JSONArray; import com.opensymphony.xwork2.ActionSupport; public class GetAllTask extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; private JSONArray allTaskJson;// 返回值 private String taskPage;// 请求的页码 public JSONArray getAllTaskJson() { return allTaskJson; } public void setAllTaskJson(JSONArray allTaskJson) { this.allTaskJson = allTaskJson; } public String getTaskPage() { return taskPage; } public void setTaskPage(String taskPage) { this.taskPage = taskPage; } public String getAllTask() { String respnse = "[{a:1,b:2,c:3},{a:2,b:3,c:4},{a:3,b:4,c:5}]"; allTaskJson = JSONArray.fromObject(respnse); return SUCCESS; } }
本例中,GetAllTask类中需要定义两个全局变量(均为private)。
其中一个为allTaskJson与struts.xml中的返回值同名。当方法调用完毕后,将该allTaskJson的内容返回给客户端。另外一个为taskPage,用于获取客户端发送过来的参数。
这两个全局变量都要拥有get/set方法。
*在方法中照java的方式完成各种数据的处理,只需要明确从客户端来的输入和返回给客户端的输出即可。
3、struts.xml文件
<?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>
<package
a36d
name="Function" extends="struts-default,json-default">
<action name="getAllTask" class="meiko.server.GetAllTask"
method="getAllTask">
<result name="success" type="json">
<param name="root">allTaskJson</param>
</result>
</action>
</package>
</struts>
<package name="Function"------并没有什么用,可随便写。
<package ... extends="struts-default,json-default">------前面的内容为默认内容,需要返回json时加上json-default。
<action name="getAllTask"------在ajax中调用时用到的名字。
<action ... class="meiko.server.GetAllTask"------方法所在类的完整路径(包名+类名)
<action ... method="getAllTask">------类中定义的方法名。
<result name="success" type="json">------默认success,type为返回类型,有固定几个type,按需百度。
<param name="root">allTaskJson</param>------类型不同param的name也不同,name似乎也有对应的固定值,具体百度。allTaskJson为返回值,与类中定义的用于返回的全局变量一致。
Web.xml的内容使用固定写法即可,没什么要改动的。
4、ajax调用struts的接口
$.ajax({type: "GET",
dataType: "json",
url:"getAllTask?taskPage="+taskPage;
success: function (data) {
//data为json数组格式,可以直接调用。
},
error: function () {
alert("任务列表查询失败");
}
});
getAllTask为struts.xml中设置的,?后为要输入的参数,taskPage即java文件中的一个全局变量。
如果不需要输入参数,则java文件中不需要taskPage参数,此处url也改为简单的"getAllTask"即可。
发布成功后也可直接通过浏览器访问,如图所示,是标准的json数组(吧)
相关文章推荐
- JS将form表单转换为json数据,使用ajax发送请求案例
- 使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
- Ajax使用方法,经典Ajax封装,可接收解析后台传回的json对象和json数组
- 使用ajax接收后台发送过来的json数据
- 使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
- 使用ajax接收后台发送过来的json数据方法
- struts2发送ajax的几个问题(不使用struts2-json-plugin的情况下)
- 使用Ajax发送Struts2请求返回JSON数据格式
- Struts2下使用jsonplugin及jquery完成ajax功能
- struts2之使用JSON插件实现Ajax(在struts.xml中处理要序列化的属性)
- js声明数组、对象在jsp页面中(获得ajax得到json数据)
- 在Struts2中使用JSON AJAX
- struts2之使用JSON插件实现Ajax(处理hibernate的POJO类时出现的异常)
- struts2使用JSON插件开发Ajax
- 在Struts2中使用JSON AJAX
- struts2 + spring +jquery实现AJAX (使用了struts2 的json插件)
- JST+JSON+AJAX——使用客户端js模版代替服务端数据绑定
- php使用js保存的json cookie 字符串,然后解析成数组,需要注意的事项
- struts2之使用JSON插件实现Ajax(使用JSON插件)
- Struts2,AJAX,json-plugin使用