springmvc对ajax的支持

    xiaoxiao2021-03-25  167

    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; }

    转载请注明原文地址: https://ju.6miu.com/read-1649.html

    最新回复(0)