SpringMVC与Ajax交互的几种形式

  SpringMVC:@RequestBody-将请求json串转化成java对象,@ResponseBody-将java对象转换成json串输出

 第一种:请求key/value,输出json最常用

  •  Ajax:
<script type="text/javascript">
function login() { 
	$.ajax({
		type : 'post',
		url : '${pageContext.request.contextPath}/user/login.mvc',
		//请求数据是key/value,这里不需要指定contentType,默认就是key/value类型
		data:'username=cyn&age=18', 
		cache : false,
		sync : true,
		success : function(msg) {
			//返回并解析json串
			alert(msg.username);	
		},
		error : function() {
			alert("请求失败!");
		}
	});
	} 
</script>
  • SpringMVC:
        @RequestMapping("login")
	@ResponseBody
	public User login(User user){
		System.out.println(user);
		return user;
	}

第二种:请求json串,输出json

  • Ajax:
<script type="text/javascript">
function login() { 
	$.ajax({
		type : 'post',
		url : '${pageContext.request.contextPath}/user/login.mvc',
                //指定请求数据格式是json串
	        contentType:'application/json;charset=utf-8', 
		data:'{"username":"zhangsan","age":"12"}',  
		cache : false,
		sync : true,
		success : function(msg) {
			//从返回结果集中获取username的值
			alert(msg.username);	
		},
		error : function() {
			alert("请求失败!");
		}
	});
	} 
</script>
  • SpringMVC: 
        @RequestMapping("login")
	@ResponseBody
	public User login(@RequestBody User user){
		System.out.println(user);
		return user;
	}

第三种: 请求key/value,输出字符串

  • Ajax:
<script type="text/javascript">
function login() { 
	$.ajax({
		type : 'post',
		url : '${pageContext.request.contextPath}/user/login.mvc',
		//请求数据是key/value,这里不需要指定contentType,默认就是key/value类型
		data:'username=cyn&age=18', 
		cache : false,
		sync : true,
		success : function(msg) {
			//返回并打印字符串
			alert(msg);	
		},
		error : function() {
			alert("请求失败!");
		}
	});
	} 
</script>
  • SpringMVC:
        @RequestMapping("login")
	public void login(HttpServletResponse response,User user){
		
		System.out.println(user);
		try {
			response.getWriter().write(user.toString());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值