- 浏览: 209770 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (100)
- java设计模式学习 (1)
- javascript (2)
- sqlserver (3)
- java基础 (18)
- spring (8)
- webwork (3)
- itext (4)
- xstream (1)
- freemarker (2)
- jsp (6)
- hibernate (7)
- jquery (1)
- json (1)
- poi (2)
- iprocess (1)
- bw (1)
- bpm (0)
- java2word (0)
- ireport (1)
- Struts2.0 (13)
- webservice (6)
- j2ee基础 (7)
- jms (3)
- protocol buffer (3)
- jfreechart (1)
- spring mvc (0)
- http编程机制探析 (1)
- pb (2)
- oracle (0)
- sso (0)
- mybatis (0)
- ssl与ca认证 (0)
- cas (1)
最新评论
-
mayucai:
这个博客写的我是真服,写了一大堆,结果最后来一句这是错的。
poi获取excel和word总页数 -
iris_1992:
2005年以前,国外开原报表完全碾压国产软件,但是现在国内软件 ...
ireport与jasperreports开发总结 -
高攀sky:
...
Servlet中的八大Listener -
rmn190:
多谢, 试了N多个后, 终于参考您的内容, 设置出来了。老天开 ...
ireport与jasperreports开发总结 -
辣油_:
System.out.println("草 ...
Spring-JNDI配置
请参见:
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
- 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";
- }
- /**
- * 获得单个值就不用写了和平常一样
- */
- }
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页面
- <%@ 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="获取单个值" />
-
- <input id="getUserInfo" type="button" value="获取UserInfo对象" />
-
- <input id="getList" type="button" value="获取List对象" />
-
- <input id="getMap" type="button" value="获取Map对象" />
-
- <br>
- <br>
- <br>
- <!-- 要显示信息的层 -->
- <div id="message"></div>
- <form>
- 用户ID:
- <input name="userInfo.userId" type="text" />
- <br />
- 用户名:
- <input name="userInfo.userName" type="text" />
- <br />
- 密 码:
- <input name="userInfo.password" type="text" />
- <br>
- <input id="regRe" type="button" value="注册" />
- </form>
- </body>
- </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="获取单个值" /> <input id="getUserInfo" type="button" value="获取UserInfo对象" /> <input id="getList" type="button" value="获取List对象" /> <input id="getMap" type="button" value="获取Map对象" /> <br> <br> <br> <!-- 要显示信息的层 --> <div id="message"></div> <form> 用户ID: <input name="userInfo.userId" type="text" /> <br /> 用户名: <input name="userInfo.userName" type="text" /> <br /> 密 码: <input name="userInfo.password" type="text" /> <br> <input id="regRe" type="button" value="注册" /> </form> </body> </html>
3 json.js代码
- //初始加载页面时
- $(document).ready(function(){
- //为获取单个值的按钮注册鼠标单击事件
- $("#getMessage").click(function(){
- $.getJSON("jsontest!returnMessage.action",function(data){
- //通过.操作符可以从data.message中获得Action中message的值
- $("#message").html("<font color='red'>"+data.message+"</font>");
- });
- });
- //为获取UserInfo对象按钮添加鼠标单击事件
- $("#getUserInfo").click(function(){
- $.getJSON("jsontest!returnUserInfo.action",function(data){
- //清空显示层中的数据
- $("#message").html("");
- //为显示层添加获取到的数据
- //获取对象的数据用data.userInfo.属性
- $("#message").append("<div><font color='red'>用户ID:"+data.userInfo.userId+"</font></div>")
- .append("<div><font color='red'>用户名:"+data.userInfo.userName+"</font></div>")
- .append("<div><font color='red'>密码:"+data.userInfo.password+"</font></div>")
- });
- });
- //为获取List对象按钮添加鼠标单击事件
- $("#getList").click(function(){
- $.getJSON("jsontest!returnList.action",function(data){
- //清空显示层中的数据
- $("#message").html("");
- //使用jQuery中的each(data,function(){});函数
- //从data.userInfosList获取UserInfo对象放入value之中
- $.each(data.userInfosList,function(i,value){
- $("#message").append("<div>第"+(i+1)+"个用户:</div>")
- .append("<div><font color='red'>用户ID:"+value.userId+"</font></div>")
- .append("<div><font color='red'>用户名:"+value.userName+"</font></div>")
- .append("<div><font color='red'>密码:"+value.password+"</font></div>");
- });
- });
- });
- //为获取Map对象按钮添加鼠标单击事件
- $("#getMap").click(function(){
- $.getJSON("jsontest!returnMap.action",function(data){
- //清空显示层中的数据
- $("#message").html("");
- //使用jQuery中的each(data,function(){});函数
- //从data.userInfosList获取UserInfo对象放入value之中
- //key值为Map的键值
- $.each(data.userInfosMap,function(key,value){
- $("#message").append("<div><font color='red'>用户ID:"+value.userId+"</font></div>")
- .append("<div><font color='red'>用户名:"+value.userName+"</font></div>")
- .append("<div><font color='red'>密码:"+value.password+"</font></div>");
- });
- });
- });
- //向服务器发送表达数据
- $("#regRe").click(function(){
- //把表单的数据进行序列化
- var params = $("form").serialize();
- //使用jQuery中的$.ajax({});Ajax方法
- $.ajax({
- url:"jsontest!gainUserInfo.action",
- type:"POST",
- data:params,
- dataType:"json",
- success:function(data){
- //清空显示层中的数据
- $("#message").html("");
- //为显示层添加获取到的数据
- //获取对象的数据用data.userInfo.属性
- $("#message").append("<div><font color='red'>用户ID:"+data.userInfo.userId+"</font></div>")
- .append("<div><font color='red'>用户名:"+data.userInfo.userName+"</font></div>")
- .append("<div><font color='red'>密码:"+data.userInfo.password+"</font></div>")
- }
- });
- });
- });
- Struts2-JsonJquery-lib.zip (80.6 KB)
- 下载次数: 12
发表评论
-
Struts2 AJAX请求 Session失效处理
2014-01-17 17:01 797在Struts应用中,我们发出的请求都会经过 相应的拦截器进行 ... -
Struts2的ognl学习(转)
2011-05-17 16:53 842学习Struts2的时候,觉得OGNL表达式语言很抽象,看 ... -
struts2采用convention-plugin实现零配置(转)
2011-04-25 10:31 1117零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定 ... -
有关Struts2的标签不支持<%%>和$(EL表达式的符号)的问题
2011-04-22 18:03 0在struts2的2.0.11及以上版本的changelog里 ... -
struts2 中 OGNL表达式的使用(转)
2011-04-22 15:01 875OGNL是Object Graph Navigation ... -
Struts2.0中ActionInvocation使用
2011-04-08 16:18 2460Interceptor说明 Interceptor的接口定 ... -
struts2表送式符号(#、%、$)(转)
2011-04-08 11:52 1669#:从actioncontext中取值,前面加上# ... -
Struts2中OGNL,valueStack,stackContext的学习(转)
2011-04-08 10:38 1622Java代码 <s:form ac ... -
Struts2.0配置文件语法用法
2011-04-07 17:35 11121.struts2.0配置文件中可以使用El表达式(${})如 ... -
Struts2.0请求过程图解(转)
2011-04-07 17:21 1421Struts2架构图 当 ... -
Struts2.0实现文件上传
2011-04-07 17:12 11171.struts2.0上传三个关键字段 上传文件名、上传文件类 ... -
struts2.0与SiteMesh整合
2011-03-29 10:31 38481.在工程中引入SiteMesh的必要jar包,和struts ... -
freeMarker语法
2010-12-20 09:37 1020EG.一个对象BOOK 1.输出 ...
相关推荐
在探讨“Struts2与JSON整合”的主题时,我们深入分析了如何在Struts2框架中集成JSON技术,实现前后端数据的高效交互。Struts2作为一款流行的Java Web开发框架,提供了丰富的功能来简化Web应用程序的开发过程。而JSON...
总的来说,"Struts2 Tiles JSON jQuery Convention"的资料包可能包含了一系列示例和教程,指导开发者如何有效地整合这些技术,以创建高效、易维护的Web应用。学习和理解这些内容,对于提升Java web开发技能和理解...
总结来说,这个例子展示了如何利用Struts2处理后端业务逻辑,使用JSON作为数据交换格式,以及通过jQuery在前端实现动态更新和与服务器的异步通信。了解和掌握这三个工具的整合使用,对于提升Web开发效率和用户体验...
"Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型的示例,它结合了强大的MVC框架Struts2、轻量级的数据交换格式JSON以及高效的前端库jQuery,以实现网页上的无刷新数据交互。下面将详细介绍这三个技术及其在...
将Struts2与JSON整合,可以实现高效、动态的Web交互。 首先,我们要理解Struts2整合JSON的基本流程。在Struts2中,我们可以通过Action类返回一个JSON结果类型,这样Struts2会自动将Action的属性转化为JSON格式并...
在Struts2与Ajax的交互中,后端返回的JSON数据需要在前端被`json2.js`解析成可操作的对象,这样才能在页面上动态更新内容。 接下来,我们讨论Struts2的`jsonplugin`。Struts2 JSON插件是官方提供的一个扩展,它使...
Struts2、JSON和AJAX是Web开发中的关键技术,它们的整合可以实现高效的数据交互和动态页面更新。本文将深入探讨这些技术以及如何在实际项目中整合它们。 **Struts2** 是一个基于MVC(Model-View-Controller)设计...
整合Struts2、jQuery和JSON可以极大地提升Web应用的用户体验和后端数据交互效率。下面将详细解释这些知识点: 1. **Struts2 JSON插件**:Struts2提供了一个JSON插件,允许Action直接返回JSON格式的数据,而无需额外...
### Struts2与JSON整合详解 #### 引言 在现代Web开发中,JSON(JavaScript Object Notation)作为轻量级的数据交换格式,因其简洁、易于读写的特点,被广泛应用于前后端通信中。Struts2,作为Java Web开发中的经典...
在Struts2中整合JSON和jQuery,可以实现异步数据交换,提升Web应用的用户体验。 在Struts2中整合JSON,首先需要在Struts2的配置文件(如struts.xml)中定义一个Action,该Action返回JSON类型的结果。例如: ```xml...
总之,“struts2.json.jquery简单实例”展示了如何在Web应用中整合这三个关键技术,实现高效的数据交互和动态UI更新。通过学习和实践这个实例,开发者可以更好地理解和掌握Struts2、JSON和jQuery在实际项目中的运用...
Struts2与JSON的整合使得服务器端可以通过JSON格式返回数据给客户端,从而提高了数据传输的效率和用户体验。在Struts2中,可以通过配置Action类和结果类型来实现JSON的输出。通常,我们需要在struts.xml配置文件中为...
这个实例将展示如何在Struts2中整合JSON和JQuery来实现动态的数据交互,提高用户体验。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而JQuery则是一个强大的JavaScript库,它简化了DOM操作、事件...
【jQuery与Struts2整合详解】 在Web开发中,jQuery是一个强大的JavaScript库,它简化了JavaScript的DOM操作、事件处理和Ajax交互。Struts2是一个流行的Java Web框架,用于构建MVC(Model-View-Controller)架构的...
通过学习这些示例,你可以更好地理解如何在实际项目中实现Struts2与jQuery的JSON交互。这涉及到前端与后端的交互机制、JSON数据的序列化与反序列化、以及如何在JavaScript中操作和展示这些数据。熟悉这一流程对于...
在这个实例中,“整合jquery+json+struts2异步提交”是一个典型的前端与后端交互的示例,利用了jQuery的Ajax功能和Struts2框架处理JSON数据。下面我们将详细探讨这些技术及其相互配合的工作原理。 **jQuery** 是一...
为了更好地整合jQuery和Struts2,我们可以使用Struts2的`json-plugin`,它提供了JSON值栈转换器,自动将Action的属性转换为JSON格式。例如,如果你的Action类有一个`User`对象,Struts2会自动将其转换为JSON对象。 ...
Struts2是一个流行的Java web框架,它为开发者提供了...通过以上知识点,你可以理解并实现Struts2与JSON的整合,创建能够高效、安全地处理JSON数据的web应用。在实际开发中,不断实践和优化,才能更好地掌握这一技术。
4. **Struts2与JQuery/JSON的整合**: - **Ajax请求**:使用JQuery的`$.ajax()`或`$.getJSON()`发起异步请求到Struts2 Action,Action处理后以JSON格式返回数据。 - **Struts2 JSON插件**:安装并配置Struts2的...
在本实例中,我们将探讨如何利用Struts2、jQuery、Ajax和JSON技术实现一个用户登录功能。 首先,我们需要理解Ajax的核心概念,即在不刷新整个页面的情况下,向服务器发送异步请求并获取数据。这极大地提升了用户...