1. 普通的POJO,Person:
package com.huey.entity;
import java.util.Date;
/**
* Person,普遍的JavaBean
* @version 2013-08-22
* @author Huey2672
*
*/
public class Person {
private String name;
private String sex;
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Person() {
}
}
2. 实现Action逻辑:
package com.huey.action;
import com.huey.entity.Person;
import com.opensymphony.xwork2.ActionSupport;
/**
* ScanPersonAction,查看Person对象
* @version 2013-08-21
* @author Huey2672
*
*/
public class ScanPersonAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = -8268274463497413222L;
// 该属性的类型是自定义的类型
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
/**
* 这里直接用struts.xml配置一下属性的值,
* 实际应用中应该从数据库中查找出一个记录保存在Person对象中
*/
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
3. 配置struts.xml文件,需要添加JSON插件,加入struts2-json-plugin-2.3.15.1.jar包:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- Ajax的POST请求以UTF-8方式进行编码 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 包应该继承json-default包 -->
<package name="scan" extends="json-default">
<action name="scanAction" class="com.huey.action.ScanPersonAction">
<!-- 配置参数的初始值 -->
<param name="person.name">Sugar</param>
<param name="person.sex">female</param>
<param name="person.birthday">2013-01-01</param>
<!-- type属性设置为json -->
<result name="success" type="json">
<!-- 取消浏览器缓存 -->
<param name="noCache">true</param>
<!-- 设置服务器响应类型 -->
<param name="contentType">text/html</param>
<!-- 还有其他参数,可以根据需要指定 -->
</result>
</action>
</package>
</struts>
4. 实现JSP页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Index</title>
<!-- 导入jquery -->
<script src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#scan").click(function(){
$.post(
// 请求地址
"scanAction.action",
// 请求参数
null ,
// 回调函数
function(data, status){
alert("数据:" + data + "\n状态:" + status);
// 将json文本转换成javascript对象
var result = eval("(" + data + ")");
$("#name").html(result.person.name);
$("#sex").html(result.person.sex);
$("#birthday").html(result.person.birthday);
}
);
});
});
</script>
</head>
<body>
<button id="scan">提交</button>
<table>
<tr>
<td>名字:</td>
<td><span id="name"></span></td>
</tr>
<tr>
<td>性別:</td>
<td><span id="sex"></span></td>
</tr>
<tr>
<td>生日:</td>
<td><span id="birthday"></span></td>
</tr>
</table>
</body>
</html>