zoukankan      html  css  js  c++  java
  • springMVC传对象参数、返回JSON格式数据

    假如请求路径: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.");  
            }  
  • 相关阅读:
    subdomain takeover(子域名劫持)
    Kali linux UI missing close/minimize/maximize button
    vim比较多个文件内容
    vim多行缩进或缩出
    记一次centos8开机故障Internal error xfs XFS_WANT_CORRUPTED_GOTO
    Windows批处理(cmd/bat)常用命令小结
    git table无法自动补全问题
    git升级到指定版本
    linux 下find命令 --查找文件名
    Docker Nexus3 重置 admin 密码
  • 原文地址:https://www.cnblogs.com/liaojie970/p/5518208.html
Copyright © 2011-2022 走看看