Struts2+jQuery+Json零配置实现ajax

(一)Jsp页面代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP 'index.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">    

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">

    -->

    <script type="text/javascript" src="js/jquery-1.6.1.js" mce_src="js/jquery-1.6.1.js"></script>

    

    <script type="text/javascript">

        $(function(){

        

            $("#str").click(function(){

                $.ajax({

                    type: "post",

                    url: "jsonTest/str.action",

                    dataType: "json",

                    data: {"name":"pyz","age":"30"},

                    beforeSend: function(XMLHttpRequest){

                        //ShowLoading();

                        $("#str").val("正在处理中...");

                    },

                    success: function(data){ 

                        alert("字符串:" + data);

                    },

                    complete: function(XMLHttpRequest, textStatus){

                        //HideLoading();

                        $("#str").val("已处理完成");

                    },

                    error: function(){

                        //请求出错处理

                        alert("error");

                    }

                });

            });

        

            $("#keyValue").click(function(){

                $.ajax({

                    type: "post",

                    url: "jsonTest/keyValue.action",

                    dataType: "json",

                    data: {"name":"pyz","age":"30"},

                    beforeSend: function(XMLHttpRequest){

                        //ShowLoading();

                        $("#keyValue").val("正在处理中...");

                    },

                    success: function(data){

                        var jo = eval("("+data+")"); 

                        alert("姓名:" + jo.name + "  年龄:"+ jo.age);

                    },

                    complete: function(XMLHttpRequest, textStatus){

                        //HideLoading();

                        $("#keyValue").val("已处理完成");

                    },

                    error: function(){

                        //请求出错处理

                        alert("error");

                    }

                });

            });

            

            $("#objList").click(function(){

                $.ajax({

                    type: "post",

                    url: "jsonTest/objList.action",

                    dataType: "json",

                    data: {"name":"pyz","age":"30"},

                    beforeSend: function(XMLHttpRequest){

                        //ShowLoading();

                        $("#objList").val("正在处理中...");

                    },

                    success: function(data){

                        var jo = eval("("+data+")"); 

                        var buf="" ;  

                         //遍历json返回数据  

                        $(jo).each(function(i,item){  

                            buf += "姓名:";  

                            buf += item.name;  

                            buf += "  年龄:";  

                            buf += item.age;  

                            buf += "/r/n";  

                        });

                        alert(buf);

                    },

                    complete: function(XMLHttpRequest, textStatus){

                        //HideLoading();

                        $("#objList").val("已处理完成");

                    },

                    error: function(){

                        //请求出错处理

                        alert("error");

                    }

                });

            });

            

        });

    

</script>

  </head>

  

  <body>

    <input type="button" id="keyValue" value="提交/接收数据(键值对)" /> <br>

    <input type="button" id="str" value="接收字符串" /> <br>

    <input type="button" id="objList" value="接收对象列表" /> <br>

  </body>

</html>

 

(二)Action代码

package com.pyz.action;

import java.util.HashMap;

import java.util.Map;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

import net.sf.json.JSONSerializer;

import org.apache.struts2.ServletActionContext;

import org.apache.struts2.convention.annotation.Action;

import org.apache.struts2.convention.annotation.ParentPackage;

import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionSupport;

@ParentPackage("json-default")

public class JsonTestAction extends ActionSupport {

	private static final long serialVersionUID = 1L;

	

	//返回json格式的数据  

    private String result;

	

	@Action(

		value="/jsonTest/str",

		results={

			@Result(name="success", type="json", params={"root","result"})

		}

	)

	public String str(){

		String name = ServletActionContext.getRequest().getParameter("name");

		String age = ServletActionContext.getRequest().getParameter("age");

		

		this.result = "aaa";

		

		return SUCCESS;

	}

	

	@Action(

		value="/jsonTest/keyValue",

		results={

			@Result(name="success", type="json", params={"root","result"})

		}

	)

	public String keyValue(){

		String name = ServletActionContext.getRequest().getParameter("name");

		String age = ServletActionContext.getRequest().getParameter("age");

		

//		//方法一,直接创建JSON对象

//		JSONObject jo = new JSONObject();

//		jo.element("name", name);

//		jo.element("age", age);

		

//		//方法二,JAVABEAN转JSON对象

//		User user = new User();

//		user.setName("pyz");

//		user.setAge(19);

//		JSONObject jo = (JSONObject)JSONObject.fromObject(user);

//		//JSONObject jo = (JSONObject)JSONSerializer.toJSON(user);//等于上语句

		

		//方法三,MAP转JSON对象

		Map<String, Object> map = new HashMap<String, Object>();

		map.put("name", "pyz");

		map.put("age", 19);

		JSONObject jo = (JSONObject)JSONObject.fromObject(map);

		//JSONObject jo = (JSONObject)JSONSerializer.toJSON(user);//等于上语句

		

		this.result = jo.toString();

		

		return SUCCESS;

	}

	@Action(

		value="/jsonTest/objList",

		results={

			@Result(name="success", type="json", params={"root","result"})

		}

	)

	public String objList(){

		String name = ServletActionContext.getRequest().getParameter("name");

		String age = ServletActionContext.getRequest().getParameter("age");

		

		//方法一,直接创建JSON对象

		JSONObject jo = new JSONObject();

		jo.element("name", name);

		jo.element("age", age);

		JSONObject jo1 = new JSONObject();

		jo1.element("name", "ty");

		jo1.element("age", "29");

		

		//同理,可以将JAVABEAN、MAP对象转换成JSON对象,再添加到JSONArray中

		

		JSONArray ja = new JSONArray();

		ja.add(jo);

		ja.add(jo1);

		this.result = ja.toString();

		

		return SUCCESS;

	}

	

	public String getResult() {

		return result;

	}

	public void setResult(String result) {

		this.result = result;

	}

	

	public class User{

		private String name;

		private int age;

		public String getName() {

			return name;

		}

		public void setName(String name) {

			this.name = name;

		}

		public int getAge() {

			return age;

		}

		public void setAge(int age) {

			this.age = age;

		}

	}

}

 

你可能感兴趣的:(struts2)