在myeclipse8.6的系列中,当添加struts2框架中,自动添加的JSON的包。
JSON的官网: http://www.json.org/
文档的参考地址为:
https://cwiki.apache.org/confluence/display/WW/JSON%20Plugin
struts.xml 配置文件
<package name="test" extends="json-default">
<action name="jsonaction" class="com.action.json.JsonAction">
<result type="json" >
<!-- 排除属性 不显示userid和userage这两个字段 -->
<param name="excludeProperties">user.userid,user.userage</param>
</result>
</action>
</package>
action:
@Controller
public class JsonAction extends ActionSupport {
@Resource
private IUserDao iud;
private Users user;
public Users getUser() {
return user;
}
public void setUser(Users user) {
this.user = user;
}
public String execute() {
Integer uid = user.getUserid(); // 获取JSP页面中select列表的传递过来的用户ID
this.user = iud.findById(uid); // 根据用户的ID获取用户实体
return SUCCESS; // 最好直接返回SUCCESS
}
}
JSP页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>xmlAction</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<script type="text/javascript" src="jQuery/jquery-1.5.2.js">
</script>
<script type="text/javascript">
function getjsoninfo() {
var val = $("#person").val();
$.ajax( {
type:"post",
url : "jsonaction.action",
data : "user.userid=" + val,
success : function(data) {
alert(data.user.username); //该user必须和action中的属性同名!
}
});
}
</script>
</head>
<body>
<center>
<s:select id="person" list="userlist" listKey="userid"
listValue="username"></s:select><!-- 下拉列表 -->
<input type="button" value="getjsoninfo" οnclick="getjsoninfo()">
</center>
</body>
</html>
Gson+Struts2 例子