利用struts2+json+jquery 实现数据的存取。
所需jar包:
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Struts2+JQuery+JSON</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="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.uid" type="text"/><br/>
用户名:<input name="userInfo.uname" type="text"/><br/>
年 纪:<input name="userInfo.age" type="text"/><br>
<input id="regRe" type="button" value="注册"/>
</form>
</body>
</html>
js文件:json.js
package com.test.vo;
import java.io.Serializable;
public class UsersInfo implements Serializable {
private static final long serialVersionUID = -4618501904271551291L;
private int uid;
private String uname;
private int age;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
action类:
package com.test.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.test.vo.UsersInfo;
import com.opensymphony.xwork2.ActionSupport;
public class JsonStrutsJqueryAction extends ActionSupport {
private static final long serialVersionUID = -4618501904271551291L;
private UsersInfo userInfo; // 使用json返回对象
private String messages; // 使用json返回单个值
private List<UsersInfo> listUserInfo; // 使用json返回list对象
private Map maps; // 使用json返回map对象
public Map getMaps() {
return maps;
}
public void setMaps(Map maps) {
this.maps = maps;
}
public UsersInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UsersInfo userInfo) {
this.userInfo = userInfo;
}
public String getMessages() {
return messages;
}
public void setMessages(String messages) {
this.messages = messages;
}
public List<UsersInfo> getListUserInfo() {
return listUserInfo;
}
public void setListUserInfo(List<UsersInfo> listUserInfo) {
this.listUserInfo = listUserInfo;
}
/**
* <p>返回单个值</p>
* @return
* @throws Exception
*/
public String returnMessage() throws Exception
{
this.messages="成功返回单个值";
return "message";
}
/**
* <p>返回用户信息对象</p>
* @return
* @throws Exception
*/
public String returnUsersInfo() throws Exception
{
userInfo=new UsersInfo();
userInfo.setUid(55555);
userInfo.setUname("MINISIDSC");
userInfo.setAge(24);
return "usersInfo";
}
/**
* <p>返回list对象</p>
* @return
* @throws Exception
*/
public String returnListUserInfo() throws Exception
{
listUserInfo=new ArrayList<UsersInfo>();
UsersInfo u1=new UsersInfo();
u1.setUid(8888);
u1.setUname("MINISIDSC");
u1.setAge(24);
UsersInfo u2=new UsersInfo();
u2.setUid(6666);
u2.setUname("张三");
u2.setAge(24);
UsersInfo u3=new UsersInfo();
u3.setUid(99999);
u3.setUname("李四");
u3.setAge(24);
UsersInfo u4=new UsersInfo();
u4.setUid(1111);
u4.setUname("王麻子");
u4.setAge(24);
listUserInfo.add(u1);
listUserInfo.add(u2);
listUserInfo.add(u3);
listUserInfo.add(u4);
return "listUserInfo";
}
/**
* 返回map对象
* @return
* @throws Exception
*/
public String returnMaps() throws Exception
{
maps = new HashMap<String,UsersInfo>();
UsersInfo u1=new UsersInfo();
u1.setUid(8888);
u1.setUname("MINISIDSC");
u1.setAge(24);
UsersInfo u2=new UsersInfo();
u2.setUid(6666);
u2.setUname("张三");
u2.setAge(24);
UsersInfo u3=new UsersInfo();
u3.setUid(99999);
u3.setUname("李四");
u3.setAge(24);
UsersInfo u4=new UsersInfo();
u4.setUid(1111);
u4.setUname("王麻子");
u4.setAge(24);
maps.put(u1.getUid()+"", u1);
maps.put(u2.getUid()+"", u2);
maps.put(u3.getUid()+"", u3);
maps.put(u4.getUid()+"", u4);
return "maps";
}
/**
* <p>
* 获得对象,也就是通过表达获得对象(异步的)
* </P>
* @return
*/
public String gainUserInfo(){
System.out.println("用户uid:"+userInfo.getUid());
System.out.println("用户名:"+userInfo.getUname());
System.out.println("年龄:"+userInfo.getAge());
return "reg";
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="jsont" extends="json-default" namespace="/">
<action name="jsonTest" class="com.huawei.action.JsonStrutsJqueryAction">
<!-- 返回单个值的result -->
<result name="message" type="json"></result>
<!-- 返回UserInfo对象的 -->
<result name="usersInfo" type="json"></result>
<!-- 返回List对象的 -->
<result name="listUserInfo" type="json"></result>
<!-- 返回Map对象的 -->
<result name="maps" type="json"></result>
<!-- 提交ajax数据 -->
<result name="reg" type="json"></result>
</action>
</package>
</struts>
实体类:
package com.test.vo;
import java.io.Serializable;
public class UsersInfo implements Serializable {
private static final long serialVersionUID = -4618501904271551291L;
private int uid;
private String uname;
private int age;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}