Struts2.2 有自带的 json plugin,但在 2.0.14中好像没有,所以在网上找了些资料整理了一下.
1.struts2.0.14核心包
2.jsonplugin-0.32.jar
http://code.google.com/p/jsonplugin/downloads/list
3.jquery jquery-1.4.2.min.js
下面的demo简单的实现了通过jquery访问action,action返回json格式对象,需要注意的地方:
1.将action的返回类型设置为 json, package 继承 json-default
设置返回类型为json后,struts2的拦截器会自动将返回的数据转换为json对象.
1. JSONAction.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package action;
import com.googlecode.jsonplugin.JSONException;
import com.googlecode.jsonplugin.JSONUtil;
import com.opensymphony.xwork2.ActionSupport;
import entity.Member;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author db2
*/
public class JSONAction extends ActionSupport{
//在执行完action后,应为在struts.xml中配置的 返回 类型为json,所以
// member在经过strust2的拦截器时会被转换为 json格式,在页面上可以直接以Json对象使用
private Member member;
private String result;
private String memberId;
public Member getMember() {
return member;
}
public void setMember(Member member) {
this.member = member;
}
public String getResult() {
return result;
}
public void setResult(String result) {
// System.out.println("set result: " + result);
this.result = result;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
//当用户存在时,反回一个Json 格式的 member, 否则返回 false
public String execute() throws JSONException{
List<Member> members = new ArrayList<Member>();
members.add(new Member(123,123,"member1"));
members.add(new Member(456,456,"member2"));
boolean flag = false;
for(Member m:members){
if(Long.toString(m.getId()).equals(memberId)){
// 1.将m转换成Json格式字符串,的页面上取值是要先把resutl转换为 Josn Object
this.result=JSONUtil.serialize(m);
System.out.println("result member: " + result);
// 2.设置Member为 member,与 this.result=JSONUtil.serialize(m); 的作用一样
setMember(m);
// 1 与 2 的作用都是一样的, 任选一个就可以了
flag = true;
break;
}
}
if(!flag){
result ="false";
}
return SUCCESS;
}
}
2. struts.xml
<!--将返回结果设置成json, package 需要继承 json-default-->
<package name="default2" extends="json-default">
<action name="jsonTest" class="action.JSONAction">
<result type="json"/>
</action>
</package>
3.index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>index.jsp</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#button1").click(function (){
var member_id = $("#member_id").val();
// alert(member_id);
$.ajax({
url: "jsonTest.action",
type:"post",
data:"memberId="+member_id,// 传入JSONAction 的参数
cache:false,
success: function(bd){
//从返回的结果中读取member
if(bd.result != "false"){
alert("MemberId from member: " + bd.member.memberId);
//直接打印result 结果为 json格式的字符串
alert("result: " + bd.result);
var obj=eval("("+bd.result+")");
alert("Member from result: memberId:" +obj.memberId+" memberName: "+obj.memberName);
}else{
alert("member 不存在");
}
}
});
});
});
</script>
</head>
<body>
输入MemberId查询: <input type="text" id="member_id" value="123"/>
<input type="button" id="button1" value="提交"/>
</body>
</html>
分享到:
相关推荐
2. **JSON序列化与反序列化**:在服务器端,Struts 2的JSON插件可以自动将Action的属性转换为JSON对象,而在客户端,jQuery可以使用`JSON.parse()`或`$.parseJSON()`方法将接收到的JSON字符串转化为JavaScript对象。...
在IT行业中,jQuery、AJAX、JSON以及Struts2是四个非常重要的技术,它们在Web开发领域中扮演着核心角色。下面将详细解释这些技术及其相互间的集成。 **jQuery** 是一个快速、简洁的JavaScript库,它简化了HTML文档...
Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON
这个资源"struts2+json"显然涉及到在Struts2框架下实现JSON(JavaScript Object Notation)数据交换,这是一种轻量级的数据交换格式,广泛用于前后端交互,特别是AJAX(Asynchronous JavaScript and XML)请求。...
在IT行业中,jQuery、JSON和Struts2是三个非常重要的技术组件,它们分别在Web开发的不同层面上发挥着关键作用。下面将详细解释这三个技术及其相互间的结合。 **jQuery** 是一个快速、简洁的JavaScript库,它使得...
在本篇“jQuery+json+struts2 开发备忘录(一)”中,我们将探讨如何使用这三种技术来构建高效且用户友好的Web应用程序。jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。JSON...
struts2 json jquery ajax实现用户登陆及业面跳转
在这个实例中,“整合jquery+json+struts2异步提交”是一个典型的前端与后端交互的示例,利用了jQuery的Ajax功能和Struts2框架处理JSON数据。下面我们将详细探讨这些技术及其相互配合的工作原理。 **jQuery** 是一...
标题 "Jquery struts2 json 实现ajax" 涉及到的是在Web开发中使用jQuery库与Struts2框架结合处理JSON数据的Ajax技术。这个主题主要关注如何通过前端的jQuery实现异步请求,与后端的Struts2框架进行交互,从而更新...
7. **JQuery/AJAX调用**:在前端,可以使用JQuery的AJAX方法向服务器发送请求,获取Struts2 Action返回的JSON数据,然后动态更新DOM元素。 8. **安全性考虑**:在使用JSON和Struts2交互时,需要注意防止JSON ...
Jquery+struts2上传图片,制作进度条等示例,还有Jquery+Json+Struts实现Ajax技术,还有图形处理技术等,虽然很少,但都有重点突出,由于我也是学习,所以代码不是很简洁,对想学习交流的朋友非常合适
总的来说,这个压缩包提供了一个全面的学习资源,帮助开发者深入理解并熟练运用JSON数据格式、Struts2框架和jQuery库。通过这些实例,你可以提高Web开发技能,尤其是处理动态交互和数据交换的能力。在实践中不断探索...
这个实例教程可能涵盖了如何设置Struts2的JSON支持,编写jQuery脚本进行AJAX请求,以及在后台处理这些请求的Struts2 Action。通过学习和实践这个例子,开发者可以掌握如何在Java Web应用中有效地利用JSON进行数据...
Struts2、Ajax、JSON和jQuery是Web开发中常见的技术,它们共同构建了现代Web应用程序的交互性。在这个"struts2 Ajax json Jquery demo"中,我们将探讨这些技术如何协同工作,创建一个异步数据交换的示例。 首先,...
Struts2、JSON和JQuery是Web开发中的三个关键技术,它们常常被结合使用来构建高效、动态的用户界面。在本教程中,我们将探讨如何利用这些技术实现一个简单的验证功能。 首先,Struts2是一个基于MVC(Model-View-...
本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action,并在后端进行处理。 首先,我们了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
这个"Struts2 Tiles JSON jQuery Convention"的资料包可能是为了展示如何在Struts2框架下结合Tiles、JSON和jQuery实现高效、灵活的Web应用开发。下面将详细解释这些技术的结合以及它们如何协同工作。 1. **Struts2*...
Struts2、JSON和jQuery是Web开发中常用的三个技术,它们在构建动态、交互式的Web应用程序时发挥着关键作用。这个例子将展示如何整合这三个工具,实现前后端的数据交换。 首先,Struts2是一个强大的MVC(Model-View-...
在Struts2框架中整合Ajax以实现异步数据交互,JSON(JavaScript Object Notation)扮演了关键角色。JSON是一种轻量级的数据交换格式,它允许Web应用与服务器之间高效地传输数据,而无需进行繁琐的HTTP请求。在这个...