Struts2JQueryJson
资源免费下载地址:http://download.youkuaiyun.com/detail/u012750578/6584731
项目结构:
所需jar包:
功能展示:
1、获取单个值:
2、获取UserInfo对象信息
3、获取List集合对象:
4、获取Map集合对象
5、注册
一、实体Bean->UserInfo
package struts2jsonjquery.test.entity;
import java.io.Serializable;
/**
*<p>
*用户实体类
*</p>
*/
publicclass UserInfoimplements Serializable {
privatestaticfinallongserialVersionUID = 3952189513312630860L;
privateintuserId;
private StringuserName;
private Stringpassword;
publicintgetUserId(){
returnuserId;
}
publicvoid setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
returnuserName;
}
publicvoid setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
returnpassword;
}
publicvoid setPassword(String password) {
this.password = password;
}
}
二、M->Action:
package struts2jsonjquery.test.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
importstruts2jsonjquery.test.entity.UserInfo;
import com.opensymphony.xwork2.ActionSupport;
public class JsonJqueryStruts2Action extendsActionSupport {
privatestatic final long serialVersionUID = 3518833679938898354L;
privateString message; //使用json返回单个值
privateUserInfo userInfo; //使用json返回对象
privateList<UserInfo> userInfosList; //使用josn返回List对象
privateMap<String,UserInfo> userInfosMap; //使用json返回Map对象
//为上面的的属性提供get,Set方法
publicString getMessage() {
returnmessage;
}
publicvoid setMessage(String message) {
this.message= message;
}
publicUserInfo getUserInfo() {
returnuserInfo;
}
publicvoid setUserInfo(UserInfo userInfo) {
this.userInfo= userInfo;
}
publicList<UserInfo> getUserInfosList() {
returnuserInfosList;
}
publicvoid setUserInfosList(List<UserInfo> userInfosList) {
this.userInfosList= userInfosList;
}
publicMap<String, UserInfo> getUserInfosMap() {
returnuserInfosMap;
}
publicvoid setUserInfosMap(Map<String, UserInfo> userInfosMap) {
this.userInfosMap= userInfosMap;
}
/**
* <p>
* 返回单个值
* <p>
* @return
*/
publicString returnMessage(){
System.out.println("成功返回单个对象");
this.message= "成功返回单个值";
return"message";
}
/**
* <p>
* 返回UserInfo对象
* </p>
* @return
*/
publicString returnUserInfo(){
userInfo =new UserInfo();
userInfo.setUserId(10000);
userInfo.setUserName("张三");
userInfo.setPassword("000000");
return "userInfo";
}
/**
*<p>
* 返回List对象
*</p>
*@return
*/
public String returnList(){
userInfosList = newArrayList<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");
UserInfou4 = 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
*/
publicString returnMap(){
userInfosMap= new HashMap<String,UserInfo>();
UserInfou1 = new UserInfo();
u1.setUserId(10000);
u1.setUserName("张三");
u1.setPassword("000000");
UserInfou2 = new UserInfo();
u2.setUserId(10001);
u2.setUserName("李四");
u2.setPassword("111111");
UserInfou3 = new UserInfo();
u3.setUserId(10002);
u3.setUserName("王五");
u3.setPassword("222222");
UserInfou4 = 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
*/
publicString gainUserInfo(){
System.out.println("用户ID:"+userInfo.getUserId());
System.out.println("用户名:"+userInfo.getUserName());
System.out.println("密码:"+userInfo.getPassword());
return"userInfo";
}
/**
* 获得单个值就不用写了和平常一样
*/
}
三、struts.xml配置
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//Apache Software Foundation//DTD StrutsConfiguration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<packagename="default"namespace="/"extends="json-default">
<actionname="jsontest"class="struts2jsonjquery.test.action.JsonJqueryStruts2Action">
<!--返回单个值的result -->
<resultname="message"type="json"></result>
<!--返回UserInfo对象的 -->
<resultname="userInfo"type="json"></result>
<!--返回List对象的 -->
<resultname="list"type="json"></result>
<!--返回Map对象的 -->
<resultname="map"type="json"></result>
</action>
</package>
</struts>
四、web.xml中struts配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
四:V->index.jsp
<scripttype="text/javascript"src="<%=path%>/js/jquery.js"></script>
<scripttype="text/javascript"src="<%=path%>/js/json.js"></script>
<body>
<inputid="getMessage"type="button"value="获取单个值"/>
<inputid="getUserInfo"type="button"value="获取UserInfo对象"/>
<inputid="getList"type="button"value="获取List对象"/>
<inputid="getMap"type="button"value="获取Map对象"/>
<br>
<br>
<br>
<!--要显示信息的层 -->
<divid="message"></div>
<form>
用户ID:<inputname="userInfo.userId"type="text"/><br/>
用户名:<inputname="userInfo.userName"type="text"/><br/>
密 码:<inputname="userInfo.password"type="text"/><br>
<inputid="regRe"type="button"value="注册"/>
</form>
</body>
五、Jquery
json.js
//初始加载页面时
$(document).ready(function(){
//为获取单个值的按钮注册鼠标单击事件
$("#getMessage").click(function(){
$.getJSON("jsontest!returnMessage.action",function(data){
//通过.操作符可以从data.message中获得Action中message的值
$("#message").html("<fontcolor='red'>"+data.message+"</font>");
});
});
//为获取UserInfo对象按钮添加鼠标单击事件
$("#getUserInfo").click(function(){
$.getJSON("jsontest!returnUserInfo.action",function(data){
//清空显示层中的数据
$("#message").html("");
//为显示层添加获取到的数据
//获取对象的数据用data.userInfo.属性
$("#message").append("<div><fontcolor='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><fontcolor='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><fontcolor='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>")
}
});
});
});