struts2发送json数组,js使用ajax接收。

1、使用到的jar包

1、commons-lang.jar

2、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 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数组(吧)


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值