struts2通过JSON插件实现异步加载ajaxAcion

一、 添加jar包

struts2-json-plugin-2.3.4.jar
json-lib-2.3-jdk15.jar
ezmorph-1.0.6.jar

二、 写一个AjaxCheckAction异步加载类

//定义一个User的成员变量
//给该变量添加getter和setter方法
//执行业务操作,将响应数据赋值给该成员变量

public class AjaxCheckAction {
	private InputStream inputStream;
private User user;

	public String checkJson() {
		user = new User();
		user.setUserName("李白");
		user.setAge(18);
		return "success";
	}
		public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
}

三、 在struts.xml配置文件中配置action

<package name="json_default" namespace="/" extends="json-default">
	<action name="checkJson" class="action.AjaxCheckAction" method="checkJson">
	<result type="json">
	<param name="root">user</param>
	<param name="includeProperties">userName</param>
	<param name="excludeProperties">age</param>
	<param name="excludeNullProperties">true</param>
	</result>
	</action>
	</package>

四、 在JSP页面:一个用户名输入框,一个返回信息(用户名异步提醒)框

<s:text name="userName"></s:text>:<s:textfield onblur="check(this);" name="user.userName"></s:textfield> <div id="msg" style="display:inline"></div>

五、 在/js文件夹下放入jQuery插件
六、 在JSP页面写ajax方法

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
	<script type="text/javascript">
	function check(obj){
	var userName=$(obj).val();
	$.get("checkJson.action","userName="+userName,function(returnData){	$("#msg").html(returnData.userName);	
	});
	}
	</script>

七、 通过JSON传递List

// AjaxCheckAction类
	private List<User> ulist = new ArrayList<User>();
public String checkJson() {
		user = new User();
		user.setUserName("李白");
		user.setAge(18);
		ulist.add(user);
		user2 = new User();
		user2.setUserName("杜甫");
		user2.setAge(21);
		ulist.add(user2);
		return "success";
	}
//JSP页面JS与JSON
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
	<script type="text/javascript">
	function check(obj){
	var poemer="";
	var userName=$(obj).val();
	$.get("checkJson.action","userName="+userName,function(returnData){
	$.each(returnData,function(i,user){
	poemer=poemer+user.userName+" : "+user.age+" ; ";
	});	
	$("#msg").html(poemer);
	});
	}
	
	</script>

八、 通过JSON传递List时对List中对象的属性进行筛选
Struts.xml中用正则表达式挑选返回结果中的ulist中的属性

<package name="json_default" namespace="/" extends="json-default">
	<action name="checkJson" class="action.AjaxCheckAction" method="checkJson">
	<result type="json">
<!-- 	<param name="root">ulist</param> -->
 <param name="includeProperties">^ulist\[\d+\]\.userName$</param>
	<!-- <param name="excludeProperties">^ulist\[\d+\]\.age$</param>  -->
	<param name="excludeNullProperties">true</param>
	</result>
	</action>
	</package>

Index.jsp 先从结果中选中ulist,再取对象属性

	<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
	<script type="text/javascript">
	function check(obj){
	var poemer="";
	var userName=$(obj).val();
	$.get("checkJson.action","userName="+userName,function(returnData){
		/* $("#msg").html(returnData); */
	$.each(returnData.ulist,function(i,user){
	poemer=poemer+user.userName+" : "+user.age+" ; ";
	});	

	$("#msg").html(poemer); 
	});
	}
	
	</script>

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值