spring mvc 处理 Ajax

 

    Ajax就是web页面的一种异步传输方法。不论它在怎么牛,无非也是页面发送请求,服务端处理请求,所以不管是Servlet 还是Spring MVC ,对与页面发送异步传输请求来说没什么区别。所以页面脚本该怎么写还是怎么写,而服务端也是一样。只不过服务端不用返回页面,所以处理请求的方法的返回值为null即可,或者不要返回值。而方法内容可以按照Servlet的写法来写,即用PrintWriter来输出字符串或XML文本。。。

页面代码如下,这里使用的是jQuery:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
	<head>
		<title>helloworld</title>
<script type="text/javascript" src="/spring_mvc/js/jquery.js"></script>
<script type="text/javascript">
	$(function(){
		$("#testButton").click(function(){
			var $a = $(this);
			$.ajax({
				url:"/spring_mvc/testAjax.do",
				type:'post',
				data:'name=admin&password=123456',
				dataType:'html',
				success:function(data,status){
					if(status == "success"){
						var objs = jQuery.parseJSON(data);
						var str = "";
						for(var i=0;i<objs.length;i++){
							str = str + objs[i].activityName+" ";
						}
						$("#content").html(str);
					}
				},
				error:function(xhr,textStatus,errorThrown){
				}
			});
		});
	});
</script>
	</head>
	<body>
		<button id="testButton">异步传输</button>
		<div id="content"></div>
	</body>
</html>


服务端代码如下:

public class TestAjaxAction implements Controller {

	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		response.setCharacterEncoding("UTF-8");
		
		String name = request.getParameter("name");
		String password = request.getParameter("password");
		System.out.println(name+" : "+password);
		PrintWriter out = response.getWriter();
		
		List<Map<String,String>> list = new ArrayList<Map<String,String>>();
		Map<String,String> m1 = new HashMap<String,String>();
		m1.put("activityId", "000001");
		m1.put("activityName", "阿斯蒂芬1");
		Map<String,String> m2 = new HashMap<String,String>();
		m2.put("activityId", "000002");
		m2.put("activityName", "阿斯蒂芬2");
		Map<String,String> m3 = new HashMap<String,String>();
		m3.put("activityId", "000003");
		m3.put("activityName", "阿斯蒂芬3");
		Map<String,String> m4 = new HashMap<String,String>();
		m4.put("activityId", "000004");
		m4.put("activityName", "阿斯蒂芬4");
		Map<String,String> m5 = new HashMap<String,String>();
		m5.put("activityId", "000005");
		m5.put("activityName", "阿斯蒂芬5");
		list.add(m1);
		list.add(m2);
		list.add(m3);
		list.add(m4);
		list.add(m5);
		
		String s = JSONArray.fromObject(list).toString();
		out.print(s);
		out.close();
		
		return null;
	}

}


 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值