码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC传对象参数、返回JSON格式数据

时间:2016-05-23 00:27:46      阅读:519      评论:0      收藏:0      [点我收藏+]

标签:

假如请求路径:http://localhost/test/test.do?user.id=1

后台接收参数的方法如下:

 

        @RequestMapping("/test")  
        public ModelAndView test(HttpServletRequest request,HttpServletResponse response,User user) throws IOException {  
            response.setContentType("text/html; charset=utf-8");  
            PrintWriter out = response.getWriter();  
            System.out.println("user.id=" + user.getId());  
              
            JSONObject jsonObject=new JSONObject();  
              
            JSONObject userJson=new JSONObject();  
            userJson.put("id", user.getId());  
            userJson.put("name", "张三");  
              
              
            jsonObject.put("user", userJson);  
              
            out.print(jsonObject.toString());  
            return null;//这里需return null,如果return new ModelAndView则会直接转发   
        }  

 

那么在后台接收到的参数中,user对象的id属性是null。如果路径换为http://localhost/test/test.do?id=1,则user对象的id属性是1。

这里必须用id=1而不是user.id=1,因为默认情况下springMVC是不支持user.id这种传参方式的。

要想springMVC支持user.id这种传参方式,需要在controller中添加一个前缀绑定:

    @InitBinder("user")  
    public void initBinderByUser(WebDataBinder binder) {  
        binder.setFieldDefaultPrefix("user.");  
    }  

如果接收到的参数不止一个对象,比如有user、admin,则添加相应的前缀绑定:

    @InitBinder("user")  
        public void initBinderByUser(WebDataBinder binder) {  
            binder.setFieldDefaultPrefix("user.");  
        }  
          
        @InitBinder("admin")  
        public void initBinderByAdmin(WebDataBinder binder) {  
            binder.setFieldDefaultPrefix("admin.");  
        }  

 

springMVC传对象参数、返回JSON格式数据

标签:

原文地址:http://www.cnblogs.com/liaojie970/p/5518208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!