`
xiongzhenhui
  • 浏览: 209770 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Struts2 与JSON,JQUERY整合使用(转)

阅读更多

请参见:
Struts2.2+Spring3.1+Hibernate3.6整合(登录示例)
http://liuzidong.iteye.com/blog/935493
在这个示例作了修改!
参考资料
1 Struts2+jQuery+JSON实现异步交互
http://qsfwy.iteye.com/blog/682796
2  主题:[原创]Struts2 + JQuery + JSON实现AJAX
http://www.iteye.com/topic/560638
说明:主要参考了 Struts2+jQuery+JSON实现异步交互 文章,只不过原作者使用Struts2版本是是:2.1.8及json-lib.2.1.jar,在Struts2中的插件: struts2-json-plugin-2.2.1.1.jar已经不在需要json-lib.jar了,Jquery为1.5.1,在此表示向你感谢!学会了Struts2+jQueryJSON
一 环境:XP+Myeclipse6.6+WebLogic92+JDK1.5
二 具体步骤如下:
所需要的jar文件为:struts2-json-plugin-2.2.1.1.jar加入WEB-INF/lib下
所有代码引用Struts2+jQuery+JSON实现异步交互的代码,请理解!
1 JsonJqueryStruts2Action.java

Java代码 复制代码 收藏代码
  1. import java.util.ArrayList;   
  2. import java.util.HashMap;   
  3. import java.util.List;   
  4. import java.util.Map;   
  5. import com.liuzd.s2sh.entity.json.UserInfo;   
  6. import com.opensymphony.xwork2.ActionSupport;   
  7.   
  8. public class JsonJqueryStruts2Action extends ActionSupport {      
  9.      
  10.     private static final long serialVersionUID = 3518833679938898354L;      
  11.           
  12.     private String message;     //使用json返回单个值      
  13.     private UserInfo userInfo;      //使用json返回对象      
  14.     private List<UserInfo> userInfosList;     //使用josn返回List对象      
  15.     private Map<String,UserInfo> userInfosMap;    //使用json返回Map对象      
  16.     //为上面的的属性提供get,Set方法      
  17.     public String getMessage() {      
  18.         return message;      
  19.     }      
  20.     public void setMessage(String message) {      
  21.         this.message = message;      
  22.     }      
  23.     public UserInfo getUserInfo() {      
  24.         return userInfo;      
  25.     }      
  26.     public void setUserInfo(UserInfo userInfo) {      
  27.         this.userInfo = userInfo;      
  28.     }      
  29.     public List<UserInfo> getUserInfosList() {      
  30.         return userInfosList;      
  31.     }      
  32.     public void setUserInfosList(List<UserInfo> userInfosList) {      
  33.         this.userInfosList = userInfosList;      
  34.     }      
  35.     public Map<String, UserInfo> getUserInfosMap() {      
  36.         return userInfosMap;      
  37.     }      
  38.     public void setUserInfosMap(Map<String, UserInfo> userInfosMap) {      
  39.         this.userInfosMap = userInfosMap;      
  40.     }      
  41.     /**     
  42.      * <p>     
  43.      *  返回单个值     
  44.      * <p>     
  45.      * @return     
  46.      */      
  47.     public String returnMessage(){      
  48.         this.message = "成功返回单个值";       
  49.         return "message";       
  50.     }      
  51.     /**     
  52.      * <p>     
  53.      *  返回UserInfo对象     
  54.      * </p>     
  55.      * @return     
  56.      */      
  57.     public String returnUserInfo(){      
  58.         userInfo = new UserInfo();      
  59.         userInfo.setUserId(10000);       
  60.         userInfo.setUserName("张三");       
  61.         userInfo.setPassword("000000");       
  62.         return "userInfo";       
  63.     }      
  64.     /**     
  65.      * <p>     
  66.      *  返回List对象     
  67.      * </p>     
  68.      * @return     
  69.      */      
  70.     public String returnList(){      
  71.         userInfosList = new ArrayList<UserInfo>();      
  72.         UserInfo u1 = new UserInfo();      
  73.         u1.setUserId(10000);       
  74.         u1.setUserName("张三");       
  75.         u1.setPassword("000000");       
  76.         UserInfo u2 = new UserInfo();      
  77.         u2.setUserId(10001);       
  78.         u2.setUserName("李四");       
  79.         u2.setPassword("111111");       
  80.         UserInfo u3 = new UserInfo();      
  81.         u3.setUserId(10002);       
  82.         u3.setUserName("王五");       
  83.         u3.setPassword("222222");       
  84.         UserInfo u4 = new UserInfo();      
  85.         u4.setUserId(10003);       
  86.         u4.setUserName("赵六");       
  87.         u4.setPassword("333333");       
  88.         userInfosList.add(u1);      
  89.         userInfosList.add(u2);      
  90.         userInfosList.add(u3);      
  91.         userInfosList.add(u4);      
  92.         return "list";       
  93.     }      
  94.     /**     
  95.      * <p>     
  96.      *  返回Map对象     
  97.      * </p>     
  98.      * @return     
  99.      */      
  100.     public String returnMap(){      
  101.         userInfosMap = new HashMap<String,UserInfo>();      
  102.         UserInfo u1 = new UserInfo();      
  103.         u1.setUserId(10000);       
  104.         u1.setUserName("张三");       
  105.         u1.setPassword("000000");       
  106.         UserInfo u2 = new UserInfo();      
  107.         u2.setUserId(10001);       
  108.         u2.setUserName("李四");       
  109.         u2.setPassword("111111");       
  110.         UserInfo u3 = new UserInfo();      
  111.         u3.setUserId(10002);       
  112.         u3.setUserName("王五");       
  113.         u3.setPassword("222222");       
  114.         UserInfo u4 = new UserInfo();      
  115.         u4.setUserId(10003);       
  116.         u4.setUserName("赵六");       
  117.         u4.setPassword("333333");       
  118.         userInfosMap.put(u1.getUserId()+"", u1);       
  119.         userInfosMap.put(u2.getUserId()+"", u2);       
  120.         userInfosMap.put(u3.getUserId()+"", u3);       
  121.         userInfosMap.put(u4.getUserId()+"", u4);       
  122.         return "map";       
  123.     }      
  124.     /**     
  125.      * <p>     
  126.      *  获得对象,也就是通过表达获得对象(异步的)     
  127.      * </P>     
  128.      * @return     
  129.      */      
  130.     public String gainUserInfo(){      
  131.         System.out.println("用户ID:"+userInfo.getUserId());       
  132.         System.out.println("用户名:"+userInfo.getUserName());       
  133.         System.out.println("密码:"+userInfo.getPassword());       
  134.         return "userInfo";       
  135.     }      
  136.     /**     
  137.      * 获得单个值就不用写了和平常一样     
  138.      */      
  139. }    
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.liuzd.s2sh.entity.json.UserInfo;
import com.opensymphony.xwork2.ActionSupport;

public class JsonJqueryStruts2Action extends ActionSupport {   
  
    private static final long serialVersionUID = 3518833679938898354L;   
       
    private String message;     //使用json返回单个值   
    private UserInfo userInfo;      //使用json返回对象   
    private List<UserInfo> userInfosList;     //使用josn返回List对象   
    private Map<String,UserInfo> userInfosMap;    //使用json返回Map对象   
    //为上面的的属性提供get,Set方法   
    public String getMessage() {   
        return message;   
    }   
    public void setMessage(String message) {   
        this.message = message;   
    }   
    public UserInfo getUserInfo() {   
        return userInfo;   
    }   
    public void setUserInfo(UserInfo userInfo) {   
        this.userInfo = userInfo;   
    }   
    public List<UserInfo> getUserInfosList() {   
        return userInfosList;   
    }   
    public void setUserInfosList(List<UserInfo> userInfosList) {   
        this.userInfosList = userInfosList;   
    }   
    public Map<String, UserInfo> getUserInfosMap() {   
        return userInfosMap;   
    }   
    public void setUserInfosMap(Map<String, UserInfo> userInfosMap) {   
        this.userInfosMap = userInfosMap;   
    }   
    /**   
     * <p>   
     *  返回单个值   
     * <p>   
     * @return   
     */   
    public String returnMessage(){   
        this.message = "成功返回单个值";    
        return "message";    
    }   
    /**   
     * <p>   
     *  返回UserInfo对象   
     * </p>   
     * @return   
     */   
    public String returnUserInfo(){   
        userInfo = new UserInfo();   
        userInfo.setUserId(10000);    
        userInfo.setUserName("张三");    
        userInfo.setPassword("000000");    
        return "userInfo";    
    }   
    /**   
     * <p>   
     *  返回List对象   
     * </p>   
     * @return   
     */   
    public String returnList(){   
        userInfosList = new ArrayList<UserInfo>();   
        UserInfo u1 = new UserInfo();   
        u1.setUserId(10000);    
        u1.setUserName("张三");    
        u1.setPassword("000000");    
        UserInfo u2 = new UserInfo();   
        u2.setUserId(10001);    
        u2.setUserName("李四");    
        u2.setPassword("111111");    
        UserInfo u3 = new UserInfo();   
        u3.setUserId(10002);    
        u3.setUserName("王五");    
        u3.setPassword("222222");    
        UserInfo u4 = new UserInfo();   
        u4.setUserId(10003);    
        u4.setUserName("赵六");    
        u4.setPassword("333333");    
        userInfosList.add(u1);   
        userInfosList.add(u2);   
        userInfosList.add(u3);   
        userInfosList.add(u4);   
        return "list";    
    }   
    /**   
     * <p>   
     *  返回Map对象   
     * </p>   
     * @return   
     */   
    public String returnMap(){   
        userInfosMap = new HashMap<String,UserInfo>();   
        UserInfo u1 = new UserInfo();   
        u1.setUserId(10000);    
        u1.setUserName("张三");    
        u1.setPassword("000000");    
        UserInfo u2 = new UserInfo();   
        u2.setUserId(10001);    
        u2.setUserName("李四");    
        u2.setPassword("111111");    
        UserInfo u3 = new UserInfo();   
        u3.setUserId(10002);    
        u3.setUserName("王五");    
        u3.setPassword("222222");    
        UserInfo u4 = new UserInfo();   
        u4.setUserId(10003);    
        u4.setUserName("赵六");    
        u4.setPassword("333333");    
        userInfosMap.put(u1.getUserId()+"", u1);    
        userInfosMap.put(u2.getUserId()+"", u2);    
        userInfosMap.put(u3.getUserId()+"", u3);    
        userInfosMap.put(u4.getUserId()+"", u4);    
        return "map";    
    }   
    /**   
     * <p>   
     *  获得对象,也就是通过表达获得对象(异步的)   
     * </P>   
     * @return   
     */   
    public String gainUserInfo(){   
        System.out.println("用户ID:"+userInfo.getUserId());    
        System.out.println("用户名:"+userInfo.getUserName());    
        System.out.println("密码:"+userInfo.getPassword());    
        return "userInfo";    
    }   
    /**   
     * 获得单个值就不用写了和平常一样   
     */   
}  


2 测试JSP页面

Jsp代码 复制代码 收藏代码
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>   
  2. <%       
  3.     String path = request.getContextPath();       
  4. %>   
  5. <html>   
  6.     <head>   
  7.         <title>Struts2+JQuery+JSON</title>   
  8.         <meta http-equiv="pragma" content="no-cache">   
  9.         <meta http-equiv="cache-control" content="no-cache">   
  10.         <meta http-equiv="expires" content="0">   
  11.         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">   
  12.         <meta http-equiv="description" content="This is my page">   
  13.         <script type="text/javascript" src="<%=path %>/js/jquery-1.5.1.min.js"></script>   
  14.         <script type="text/javascript" src="<%=path%>/js/json.js"></script>   
  15.     </head>   
  16.   
  17.     <body>   
  18.         <input id="getMessage" type="button" value="获取单个值" />   
  19.         &nbsp;&nbsp;   
  20.         <input id="getUserInfo" type="button" value="获取UserInfo对象" />   
  21.         &nbsp;&nbsp;   
  22.         <input id="getList" type="button" value="获取List对象" />   
  23.         &nbsp;&nbsp;   
  24.         <input id="getMap" type="button" value="获取Map对象" />   
  25.         &nbsp;&nbsp;   
  26.         <br>   
  27.         <br>   
  28.         <br>   
  29.         <!-- 要显示信息的层 -->   
  30.         <div id="message"></div>   
  31.         <form>   
  32.             用户ID:   
  33.             <input name="userInfo.userId" type="text" />   
  34.             <br />   
  35.             用户名:   
  36.             <input name="userInfo.userName" type="text" />   
  37.             <br />   
  38.             密&nbsp;&nbsp;&nbsp;码:   
  39.             <input name="userInfo.password" type="text" />   
  40.             <br>   
  41.             <input id="regRe" type="button" value="注册" />   
  42.         </form>   
  43.     </body>   
  44. </html>  
<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%>
<%    
    String path = request.getContextPath();    
%>
<html>
	<head>
		<title>Struts2+JQuery+JSON</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">
		<script type="text/javascript" src="<%=path %>/js/jquery-1.5.1.min.js"></script>
		<script type="text/javascript" src="<%=path%>/js/json.js"></script>
	</head>

	<body>
		<input id="getMessage" type="button" value="获取单个值" />
		&nbsp;&nbsp;
		<input id="getUserInfo" type="button" value="获取UserInfo对象" />
		&nbsp;&nbsp;
		<input id="getList" type="button" value="获取List对象" />
		&nbsp;&nbsp;
		<input id="getMap" type="button" value="获取Map对象" />
		&nbsp;&nbsp;
		<br>
		<br>
		<br>
		<!-- 要显示信息的层 -->
		<div id="message"></div>
		<form>
			用户ID:
			<input name="userInfo.userId" type="text" />
			<br />
			用户名:
			<input name="userInfo.userName" type="text" />
			<br />
			密&nbsp;&nbsp;&nbsp;码:
			<input name="userInfo.password" type="text" />
			<br>
			<input id="regRe" type="button" value="注册" />
		</form>
	</body>
</html>


3 json.js代码

Js代码 复制代码 收藏代码
  1. //初始加载页面时      
  2. $(document).ready(function(){      
  3.  //为获取单个值的按钮注册鼠标单击事件      
  4.  $("#getMessage").click(function(){      
  5.   $.getJSON("jsontest!returnMessage.action",function(data){      
  6.    //通过.操作符可以从data.message中获得Action中message的值      
  7.    $("#message").html("<font color='red'>"+data.message+"</font>");      
  8.   });      
  9.  });      
  10.  //为获取UserInfo对象按钮添加鼠标单击事件      
  11.  $("#getUserInfo").click(function(){      
  12.   $.getJSON("jsontest!returnUserInfo.action",function(data){      
  13.    //清空显示层中的数据      
  14.    $("#message").html("");      
  15.    //为显示层添加获取到的数据      
  16.    //获取对象的数据用data.userInfo.属性      
  17.    $("#message").append("<div><font color='red'>用户ID:"+data.userInfo.userId+"</font></div>")      
  18.           .append("<div><font color='red'>用户名:"+data.userInfo.userName+"</font></div>")      
  19.           .append("<div><font color='red'>密码:"+data.userInfo.password+"</font></div>")      
  20.   });      
  21.  });      
  22.  //为获取List对象按钮添加鼠标单击事件      
  23.  $("#getList").click(function(){      
  24.   $.getJSON("jsontest!returnList.action",function(data){      
  25.    //清空显示层中的数据      
  26.    $("#message").html("");      
  27.    //使用jQuery中的each(data,function(){});函数      
  28.    //从data.userInfosList获取UserInfo对象放入value之中      
  29.    $.each(data.userInfosList,function(i,value){      
  30.     $("#message").append("<div>第"+(i+1)+"个用户:</div>")      
  31.        .append("<div><font color='red'>用户ID:"+value.userId+"</font></div>")      
  32.           .append("<div><font color='red'>用户名:"+value.userName+"</font></div>")      
  33.           .append("<div><font color='red'>密码:"+value.password+"</font></div>");      
  34.    });      
  35.   });      
  36.  });      
  37.  //为获取Map对象按钮添加鼠标单击事件      
  38.  $("#getMap").click(function(){      
  39.   $.getJSON("jsontest!returnMap.action",function(data){      
  40.    //清空显示层中的数据      
  41.    $("#message").html("");      
  42.    //使用jQuery中的each(data,function(){});函数      
  43.    //从data.userInfosList获取UserInfo对象放入value之中      
  44.    //key值为Map的键值      
  45.    $.each(data.userInfosMap,function(key,value){      
  46.     $("#message").append("<div><font color='red'>用户ID:"+value.userId+"</font></div>")      
  47.           .append("<div><font color='red'>用户名:"+value.userName+"</font></div>")      
  48.           .append("<div><font color='red'>密码:"+value.password+"</font></div>");      
  49.    });      
  50.   });      
  51.  });      
  52.  //向服务器发送表达数据      
  53.  $("#regRe").click(function(){      
  54.   //把表单的数据进行序列化      
  55.   var params = $("form").serialize();      
  56.   //使用jQuery中的$.ajax({});Ajax方法      
  57.   $.ajax({      
  58.    url:"jsontest!gainUserInfo.action",      
  59.    type:"POST",      
  60.    data:params,      
  61.    dataType:"json",      
  62.    success:function(data){      
  63.     //清空显示层中的数据      
  64.    $("#message").html("");      
  65.    //为显示层添加获取到的数据      
  66.    //获取对象的数据用data.userInfo.属性      
  67.    $("#message").append("<div><font color='red'>用户ID:"+data.userInfo.userId+"</font></div>")      
  68.           .append("<div><font color='red'>用户名:"+data.userInfo.userName+"</font></div>")      
  69.           .append("<div><font color='red'>密码:"+data.userInfo.password+"</font></div>")      
  70.    }      
  71.   });  
  72.  });      
  73. });    
分享到:
评论

相关推荐

    struts2与json整合

    在探讨“Struts2与JSON整合”的主题时,我们深入分析了如何在Struts2框架中集成JSON技术,实现前后端数据的高效交互。Struts2作为一款流行的Java Web开发框架,提供了丰富的功能来简化Web应用程序的开发过程。而JSON...

    Struts2 Tiles JSON jQuery Convention

    总的来说,"Struts2 Tiles JSON jQuery Convention"的资料包可能包含了一系列示例和教程,指导开发者如何有效地整合这些技术,以创建高效、易维护的Web应用。学习和理解这些内容,对于提升Java web开发技能和理解...

    一个简单的struts2+json+jquery 交互的例子

    总结来说,这个例子展示了如何利用Struts2处理后端业务逻辑,使用JSON作为数据交换格式,以及通过jQuery在前端实现动态更新和与服务器的异步通信。了解和掌握这三个工具的整合使用,对于提升Web开发效率和用户体验...

    struts2+json+jquery实现ajax数据的存取

    "Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型的示例,它结合了强大的MVC框架Struts2、轻量级的数据交换格式JSON以及高效的前端库jQuery,以实现网页上的无刷新数据交互。下面将详细介绍这三个技术及其在...

    Struts2与JSON

    将Struts2与JSON整合,可以实现高效、动态的Web交互。 首先,我们要理解Struts2整合JSON的基本流程。在Struts2中,我们可以通过Action类返回一个JSON结果类型,这样Struts2会自动将Action的属性转化为JSON格式并...

    json2+jsonplugin struts2整合ajax时,使用json时需要的jar包

    在Struts2与Ajax的交互中,后端返回的JSON数据需要在前端被`json2.js`解析成可操作的对象,这样才能在页面上动态更新内容。 接下来,我们讨论Struts2的`jsonplugin`。Struts2 JSON插件是官方提供的一个扩展,它使...

    struts2+json+ajax整合例子(导入即可运行,附带详细教程)

    Struts2、JSON和AJAX是Web开发中的关键技术,它们的整合可以实现高效的数据交互和动态页面更新。本文将深入探讨这些技术以及如何在实际项目中整合它们。 **Struts2** 是一个基于MVC(Model-View-Controller)设计...

    struts2 整合jQuery 和 json 的全部jar包

    整合Struts2、jQuery和JSON可以极大地提升Web应用的用户体验和后端数据交互效率。下面将详细解释这些知识点: 1. **Struts2 JSON插件**:Struts2提供了一个JSON插件,允许Action直接返回JSON格式的数据,而无需额外...

    struts2整合json

    ### Struts2与JSON整合详解 #### 引言 在现代Web开发中,JSON(JavaScript Object Notation)作为轻量级的数据交换格式,因其简洁、易于读写的特点,被广泛应用于前后端通信中。Struts2,作为Java Web开发中的经典...

    struts2整合json,jquery样列

    在Struts2中整合JSON和jQuery,可以实现异步数据交换,提升Web应用的用户体验。 在Struts2中整合JSON,首先需要在Struts2的配置文件(如struts.xml)中定义一个Action,该Action返回JSON类型的结果。例如: ```xml...

    struts2.json.jquery简单实例

    总之,“struts2.json.jquery简单实例”展示了如何在Web应用中整合这三个关键技术,实现高效的数据交互和动态UI更新。通过学习和实践这个实例,开发者可以更好地理解和掌握Struts2、JSON和jQuery在实际项目中的运用...

    struts2 json Ajax 整合所需全部jar包.zip

    Struts2与JSON的整合使得服务器端可以通过JSON格式返回数据给客户端,从而提高了数据传输的效率和用户体验。在Struts2中,可以通过配置Action类和结果类型来实现JSON的输出。通常,我们需要在struts.xml配置文件中为...

    Struts2.x配合JSON和JQuery使用的简单实例

    这个实例将展示如何在Struts2中整合JSON和JQuery来实现动态的数据交互,提高用户体验。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而JQuery则是一个强大的JavaScript库,它简化了DOM操作、事件...

    jquery与struts2整合

    【jQuery与Struts2整合详解】 在Web开发中,jQuery是一个强大的JavaScript库,它简化了JavaScript的DOM操作、事件处理和Ajax交互。Struts2是一个流行的Java Web框架,用于构建MVC(Model-View-Controller)架构的...

    Struts2整合jquery利用json与后台交互

    通过学习这些示例,你可以更好地理解如何在实际项目中实现Struts2与jQuery的JSON交互。这涉及到前端与后端的交互机制、JSON数据的序列化与反序列化、以及如何在JavaScript中操作和展示这些数据。熟悉这一流程对于...

    整合jquery+json+struts2异步提交实例

    在这个实例中,“整合jquery+json+struts2异步提交”是一个典型的前端与后端交互的示例,利用了jQuery的Ajax功能和Struts2框架处理JSON数据。下面我们将详细探讨这些技术及其相互配合的工作原理。 **jQuery** 是一...

    在jQuery中使用JSON(Struts2)

    为了更好地整合jQuery和Struts2,我们可以使用Struts2的`json-plugin`,它提供了JSON值栈转换器,自动将Action的属性转换为JSON格式。例如,如果你的Action类有一个`User`对象,Struts2会自动将其转换为JSON对象。 ...

    Struts2_JSON_Demo

    Struts2是一个流行的Java web框架,它为开发者提供了...通过以上知识点,你可以理解并实现Struts2与JSON的整合,创建能够高效、安全地处理JSON数据的web应用。在实际开发中,不断实践和优化,才能更好地掌握这一技术。

    Struts2 JQueryJson例子 .rar

    4. **Struts2与JQuery/JSON的整合**: - **Ajax请求**:使用JQuery的`$.ajax()`或`$.getJSON()`发起异步请求到Struts2 Action,Action处理后以JSON格式返回数据。 - **Struts2 JSON插件**:安装并配置Struts2的...

    struts2使用jquery整合ajax、json用户登录实例源码

    在本实例中,我们将探讨如何利用Struts2、jQuery、Ajax和JSON技术实现一个用户登录功能。 首先,我们需要理解Ajax的核心概念,即在不刷新整个页面的情况下,向服务器发送异步请求并获取数据。这极大地提升了用户...

Global site tag (gtag.js) - Google Analytics