Struts2+jQuery+Json零配置实现ajax

(一)Jsp页面代码

[c-sharp] view plaincopy
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  7. <html>  
  8.   <head>  
  9.     <base href="<%=basePath%>">  
  10.       
  11.     <title>My JSP 'index.jsp' starting page</title>  
  12.     <meta http-equiv="pragma" content="no-cache">  
  13.     <meta http-equiv="cache-control" content="no-cache">  
  14.     <meta http-equiv="expires" content="0">      
  15.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  16.     <meta http-equiv="description" content="This is my page">  
  17.     <!--  
  18.     <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">  
  19.     -->  
  20.     <mce:script type="text/javascript" src="js/jquery-1.6.1.js" mce_src="js/jquery-1.6.1.js"></mce:script>  
  21.       
  22.     <mce:script type="text/javascript"><!--  
  23.         $(function(){  
  24.           
  25.             $("#str").click(function(){  
  26.                 $.ajax({  
  27.                     type: "post",  
  28.                     url: "http://localhost:8080/jsonAndJqueryDemo/jsonTest/str.action",  
  29.                     dataType: "json",  
  30.                     data: {"name":"pyz","age":"30"},  
  31.                     beforeSend: function(XMLHttpRequest){  
  32.                         //ShowLoading();  
  33.                         $("#str").val("正在处理中...");  
  34.                     },  
  35.                     success: function(data){   
  36.                         alert("字符串:" + data);  
  37.                     },  
  38.                     complete: function(XMLHttpRequest, textStatus){  
  39.                         //HideLoading();  
  40.                         $("#str").val("已处理完成");  
  41.                     },  
  42.                     error: function(){  
  43.                         //请求出错处理  
  44.                         alert("error");  
  45.                     }  
  46.                 });  
  47.             });  
  48.           
  49.             $("#keyValue").click(function(){  
  50.                 $.ajax({  
  51.                     type: "post",  
  52.                     url: "http://localhost:8080/jsonAndJqueryDemo/jsonTest/keyValue.action",  
  53.                     dataType: "json",  
  54.                     data: {"name":"pyz","age":"30"},  
  55.                     beforeSend: function(XMLHttpRequest){  
  56.                         //ShowLoading();  
  57.                         $("#keyValue").val("正在处理中...");  
  58.                     },  
  59.                     success: function(data){  
  60.                         var jo = eval("("+data+")");   
  61.                         alert("姓名:" + jo.name + "  年龄:"+ jo.age);  
  62.                     },  
  63.                     complete: function(XMLHttpRequest, textStatus){  
  64.                         //HideLoading();  
  65.                         $("#keyValue").val("已处理完成");  
  66.                     },  
  67.                     error: function(){  
  68.                         //请求出错处理  
  69.                         alert("error");  
  70.                     }  
  71.                 });  
  72.             });  
  73.               
  74.             $("#objList").click(function(){  
  75.                 $.ajax({  
  76.                     type: "post",  
  77.                     url: "http://localhost:8080/jsonAndJqueryDemo/jsonTest/objList.action",  
  78.                     dataType: "json",  
  79.                     data: {"name":"pyz","age":"30"},  
  80.                     beforeSend: function(XMLHttpRequest){  
  81.                         //ShowLoading();  
  82.                         $("#objList").val("正在处理中...");  
  83.                     },  
  84.                     success: function(data){  
  85.                         var jo = eval("("+data+")");   
  86.                         var buf="" ;    
  87.                          //遍历json返回数据    
  88.                         $(jo).each(function(i,item){    
  89.                             buf += "姓名:";    
  90.                             buf += item.name;    
  91.                             buf += "  年龄:";    
  92.                             buf += item.age;    
  93.                             buf += "/r/n";    
  94.                         });  
  95.                         alert(buf);  
  96.                     },  
  97.                     complete: function(XMLHttpRequest, textStatus){  
  98.                         //HideLoading();  
  99.                         $("#objList").val("已处理完成");  
  100.                     },  
  101.                     error: function(){  
  102.                         //请求出错处理  
  103.                         alert("error");  
  104.                     }  
  105.                 });  
  106.             });  
  107.               
  108.         });  
  109.       
  110. // --></mce:script>  
  111.   </head>  
  112.     
  113.   <body>  
  114.     <input type="button" id="keyValue" value="提交/接收数据(键值对)" /> <br>  
  115.     <input type="button" id="str" value="接收字符串" /> <br>  
  116.     <input type="button" id="objList" value="接收对象列表" /> <br>  
  117.   </body>  
  118. </html>  
 (二)Action代码

[c-sharp] view plaincopy
  1. package com.pyz.action;  
  2. import java.util.HashMap;  
  3. import java.util.Map;  
  4. import net.sf.json.JSONArray;  
  5. import net.sf.json.JSONObject;  
  6. import net.sf.json.JSONSerializer;  
  7. import org.apache.struts2.ServletActionContext;  
  8. import org.apache.struts2.convention.annotation.Action;  
  9. import org.apache.struts2.convention.annotation.ParentPackage;  
  10. import org.apache.struts2.convention.annotation.Result;  
  11. import com.opensymphony.xwork2.ActionSupport;  
  12. @ParentPackage("json-default")  
  13. public class JsonTestAction extends ActionSupport {  
  14.     private static final long serialVersionUID = 1L;  
  15.       
  16.     //返回json格式的数据    
  17.     private String result;  
  18.       
  19.     @Action(  
  20.         value="/jsonTest/str",  
  21.         results={  
  22.             @Result(name="success", type="json"params={"root","result"})  
  23.         }  
  24.     )  
  25.     public String str(){  
  26.         String name = ServletActionContext.getRequest().getParameter("name");  
  27.         String age = ServletActionContext.getRequest().getParameter("age");  
  28.           
  29.         this.result = "aaa";  
  30.           
  31.         return SUCCESS;  
  32.     }  
  33.       
  34.     @Action(  
  35.         value="/jsonTest/keyValue",  
  36.         results={  
  37.             @Result(name="success", type="json"params={"root","result"})  
  38.         }  
  39.     )  
  40.     public String keyValue(){  
  41.         String name = ServletActionContext.getRequest().getParameter("name");  
  42.         String age = ServletActionContext.getRequest().getParameter("age");  
  43.           
  44. //      //方法一,直接创建JSON对象  
  45. //      JSONObject jo = new JSONObject();  
  46. //      jo.element("name", name);  
  47. //      jo.element("age", age);  
  48.           
  49. //      //方法二,JAVABEAN转JSON对象  
  50. //      User user = new User();  
  51. //      user.setName("pyz");  
  52. //      user.setAge(19);  
  53. //      JSONObject jo = (JSONObject)JSONObject.fromObject(user);  
  54. //      //JSONObject jo = (JSONObject)JSONSerializer.toJSON(user);//等于上语句  
  55.           
  56.         //方法三,MAP转JSON对象  
  57.         Map<String, Object> map = new HashMap<String, Object>();  
  58.         map.put("name""pyz");  
  59.         map.put("age", 19);  
  60.         JSONObject jo = (JSONObject)JSONObject.fromObject(map);  
  61.         //JSONObject jo = (JSONObject)JSONSerializer.toJSON(user);//等于上语句  
  62.           
  63.         this.result = jo.toString();  
  64.           
  65.         return SUCCESS;  
  66.     }  
  67.     @Action(  
  68.         value="/jsonTest/objList",  
  69.         results={  
  70.             @Result(name="success", type="json"params={"root","result"})  
  71.         }  
  72.     )  
  73.     public String objList(){  
  74.         String name = ServletActionContext.getRequest().getParameter("name");  
  75.         String age = ServletActionContext.getRequest().getParameter("age");  
  76.           
  77.         //方法一,直接创建JSON对象  
  78.         JSONObject jo = new JSONObject();  
  79.         jo.element("name", name);  
  80.         jo.element("age", age);  
  81.         JSONObject jo1 = new JSONObject();  
  82.         jo1.element("name""ty");  
  83.         jo1.element("age""29");  
  84.           
  85.         //同理,可以将JAVABEAN、MAP对象转换成JSON对象,再添加到JSONArray中  
  86.           
  87.         JSONArray ja = new JSONArray();  
  88.         ja.add(jo);  
  89.         ja.add(jo1);  
  90.         this.result = ja.toString();  
  91.           
  92.         return SUCCESS;  
  93.     }  
  94.       
  95.     public String getResult() {  
  96.         return result;  
  97.     }  
  98.     public void setResult(String result) {  
  99.         this.result = result;  
  100.     }  
  101.       
  102.     public class User{  
  103.         private String name;  
  104.         private int age;  
  105.         public String getName() {  
  106.             return name;  
  107.         }  
  108.         public void setName(String name) {  
  109.             this.name = name;  
  110.         }  
  111.         public int getAge() {  
  112.             return age;  
  113.         }  
  114.         public void setAge(int age) {  
  115.             this.age = age;  
  116.         }  
  117.     }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值