您的位置:首页 > 编程语言 > Java开发

springmvc对ajax的支持

2017-03-08 13:33 316 查看
1.就直接的Ajax处理

    只要在Controller的方法里面,直接使用response输出你要返回的的Ajax数据,然后return null就可以了。

@RequestMapping(value = "/hello")
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response)throws IOException {
response.setCharacterEncoding("utf-8");
response.getWriter().println("{uuid:'"+request.getParameter("uuid")+"',name:'"+request.getParameter("name")+"'}");
return null;
}


2.数据绑定@RequestBody和@ResponseBody

  @RequestBody功能:用于将HttpServletRequest的getInputStream()内容绑定到入参。@ResponseBody功能:用于将ResponseBody方法的返回值作为响应体。他们都只能访问报文体,不能访问报文头。@ResponseBody会把这个对象自动变成json格式的,再传回客户端,非常方便。当然,@ResponseBody也支持集合对象自动变成json格式。

@RequestMapping(value = "/hello")
@ResponseBody
public List<User> handleRequest(@RequestBody String reqBody) {
System.out.println("the reqBody="+reqBody);
List<User> list = new ArrayList<User>();
User user= new User();
user.setUuid("22");
user.setName("222");
list.add(user);
return list;
}


3.使用HttpEntity/ResponseEntity来支持Ajax
  使用HttpEntity/ResponseEntity不但能访问到报文体,还可以访问报文头.

@RequestMapping(value = "/hello")
public ResponseEntity<List<User>> handleRequest(HttpEntity<String> req) {
System.out.println("req headers="+req.getHeaders()+", reqBody="+req.getBody());
List<User> list = new ArrayList<User>();
User user = new User();
user.setUuid("22");
user.setName("222");
list.add(user);
ResponseEntity<List<User>> ret = new ResponseEntity<List<User>>(list,HttpStatus.OK);
return ret;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: