Struts2中Ajax支持的简单示例

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>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值