<%@ 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>My JSP 'index.jsp' starting page</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="js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="js/JqueryGsonSelect.js"></script>
</head>
<body>
<s:select list="#{'zhangsan':'zhangsan', 'lisi':'lisi' }" id="selName" ></s:select>
<button>button查询</button>
</body>
</html>
$(function()
{
$("button").click(function()
{
$.ajax(
{
type:"post",
url:"selGsonInfo",
data:{name:$("#selName").val()},
success:function(returnData,status)
{
if("success" == status)
{
alert("name:"+ returnData.name +"age:"+ returnData.age +
"HomeAddress:"+ returnData.myAddress.homeAddress+
"SchoolAddress:"+ returnData.myAddress.schoolAddress +
"friendInfo:"+ returnData.friends[0].name);
}
}
});
});
});
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.i18n.encoding" value="UTF-8"/>
<constant name="struts.configuration.xml.reload" value="true" />
<package name="default" extends="struts-default">
<action name="selGsonInfo" class="org.struts.action.JqueryGsonSelect" />
</package>
</struts>
package org.struts.model;
/**
* 地址类.
* @author Administrator
*
*/
public class MyAddress {
//家庭地址
private String homeAddress;
//学校地址
private String schoolAddress;
public String getHomeAddress() {
return homeAddress;
}
public void setHomeAddress(String homeAddress) {
this.homeAddress = homeAddress;
}
public String getSchoolAddress() {
return schoolAddress;
}
public void setSchoolAddress(String schoolAddress) {
this.schoolAddress = schoolAddress;
}
}
package org.struts.model;
import java.util.ArrayList;
import java.util.List;
//个人信息类
public class GsonUsers {
private String name;
private int age;
private MyAddress myAddress;
private List<GsonUsers> friends=new ArrayList<GsonUsers>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public MyAddress getMyAddress() {
return myAddress;
}
public void setMyAddress(MyAddress myAddress) {
this.myAddress = myAddress;
}
public List<GsonUsers> getFriends() {
return friends;
}
public void setFriends(List<GsonUsers> friends) {
this.friends = friends;
}
}
package org.struts.action;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import org.struts.model.GsonUsers;
import org.struts.model.MyAddress;
import com.google.gson.Gson;
//Action类
public class JqueryGsonSelect {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() throws Exception
{
MyAddress myAddress=new MyAddress();
myAddress.setHomeAddress("青岛");
myAddress.setSchoolAddress("北京");
GsonUsers friend1=new GsonUsers();
friend1.setName("展");
friend1.setAge(18);
friend1.setMyAddress(myAddress);
GsonUsers friend2=new GsonUsers();
friend2.setName("周");
friend2.setAge(19);
friend2.setMyAddress(myAddress);
GsonUsers me=new GsonUsers();
if("zhangsan".equals(name))
{
me.setName("张三");
me.setAge(18);
me.setMyAddress(myAddress);
me.getFriends().add(friend1);
}
else if("lisi".equals(name))
{
me.setName("李四");
me.setAge(25);
me.setMyAddress(myAddress);
me.getFriends().add(friend2);
}
//用到gson需要下载gson-2.2.4.jar(最新版本)把实体对象转换为json对象用的是toJson(object)方法.
Gson gson=new Gson();
String jsonResult = gson.toJson(me);
HttpServletResponse response = ServletActionContext.getResponse();
//更改编码格式
response.setContentType("applicatiom/json;charset=utf-8");
PrintWriter out = response.getWriter();
out.print(jsonResult);
return null;
}
}