springController:

  1. @Controller
  2. @RequestMapping("/user")
  3. public UserController extends BaseController{
  4. @RequestMapping("/addUser")
  5. public void testBinderOuput(@ModelAttribute User user, HttpServletRequest request, HttpServletResponse response){
  6. System.out.println(user);
  7. }
  8. }

Use对象:

  1. public Class User{
  2. private String name;
  3. private int sex;
  4. private String address;
  5. private int id;
  6. public int getSex() {
  7. return sex;
  8. }
  9. public void setSex(int sex) {
  10. this.sex = sex;
  11. }
  12. public String getAddress() {
  13. return address;
  14. }
  15. public void setAddress(String address) {
  16. this.address = address;
  17. }
  18. public int getId() {
  19. return id;
  20. }
  21. public void setId(int id) {
  22. this.id = id;
  23. }
  24. public void setName(String name) {
  25. this.name = name;
  26. }
  27. }

请求路径:
localhost/user/addUser?user.name="test"
那么在后台接受到的参数中,user对象的name属性是null。如果路径换为localhost/user/addUser?name="test",则user对象的name属性是test。
这里必须用name="test"而不是user.name="test",因为默认情况下springMVC是不支持user.name这种传参方式的。

如果有个对象manager中也有name这个相同的属性,那么可以采用user.name,manager.name来传输参数。但是这个需要在controller中添加一个前缀绑定:

添加绑定前缀后的controller类如下:

  1. @Controller
  2. @RequestMapping("/user")
  3. public UserController extends BaseController{
  4. @InitBinder("manager")
  5. public void initBinder1(WebDataBinder binder) {
  6. binder.setFieldDefaultPrefix("manager.");
  7. }
  8. @InitBinder("user")
  9. public void initBinder2(WebDataBinder binder) {
  10. binder.setFieldDefaultPrefix("user.");
  11. }
  12. @RequestMapping("/addUser")
  13. public void testBinderOuput(@ModelAttribute User user, HttpServletRequest request, HttpServletResponse response){
  14. System.out.println(user.getName);
  15. }
  16. @RequestMapping("/addManager")
  17. public void testBinderOuput(@ModelAttribute Manager manager, HttpServletRequest request, HttpServletResponse response){
  18. System.out.println(manager.getName);
  19. }
  20. }

这样在使用连接localhost/user/addUser?user.name="test",去请求时,后台拿到的name的参数就不为null了。

有个专门讨论这个问题的主题:http://www.iteye.com/topic/1124433?page=2可以参考下

springMVC传对象参数的更多相关文章

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

    假如请求路径:http://localhost/test/test.do?user.id=1 后台接收参数的方法如下: @RequestMapping("/test") publi ...

  2. 微信小程序 navigateTo 传对象参数

    当微信小程序navigateTo传入参数是个object时,请使用JSON.strtingify将object转化为字符串,代码如下: wx.navigateTo({ url: '../sendChe ...

  3. springMVC传递对象参数

    初学java,由于项目紧急,来不及仔细的研究,在传递参数时就老老实实的一个一个的采用@RequestParam注解方式传递,最近认真看了一下,发现java也具有类似Asp.net Mvc传递对象做参数 ...

  4. 经过测试,feign只能通过@RequestBody传对象参数

    通过feign调用,使用ModelAttribute 注解,参数没法传到对应的server

  5. 微信小程序页面跳转url如何传对象参数

    两步走 首先第一步:wx.navigateTo({ url:"XXX"+"&params="+ JSON.stringify(obj); }) 第二步获 ...

  6. 如何用javascript 的eval动态执行一个需要传对象参数的函数

    代码如下: var method = 'setRiskItemAmount_'+id[1]+'(id[0],id[2],this.value);'; console.log(method); eval ...

  7. 关于springMVC 传递 对象参数的问题

    1.前端请求必须是 post 2.前端数据data必须做 json字符串处理  JSON.stringify(data) 3. contentType: 'application/json', 4.@ ...

  8. js 字符中 带 函数 再传对象参数

    不替换 ( .replace(/\"/g, "\\\"") )则会有错误: Uncaught SyntaxError: missing ) after argu ...

  9. jsp取addFlashAttribute值深入理解即springMVC发redirect传隐藏参数

    结论:两种方式 a.如果没有进行action转发,在页面中el需要${sessionScope['org.springframework.web.servlet.support.SessionFlas ...

随机推荐

  1. HTTP API 设计指南

    本指南描述了一系列 HTTP+JSON API 的设计实践, 来自并展开于 Heroku Platform API 的工作.本指南指导着Heroku内部API的开发,我们希望也能对Heroku以外的A ...

  2. MVVM模式下 修改 store的ajax请求url。

    MVVM模式下 修改 store的ajax请求url. view.down('Pro').getViewModel().getStore('xx_store').proxy.url = "s ...

  3. 使用FormData实现ajax文件异步上传

    1.传统的web开发文件上传一般是基于form表单的文件上传,同步的方式,用户体验差,可控性也差 2.异步上传的实现 有以下方式 2.1 借助浏览器插件 一般需要安装一些类似flash的插件  这种方 ...

  4. FTP mget without prompt

    # ftp 192.168.100.2Connected to 192.168.100.2.220 Microsoft FTP ServiceName (192.168.100.2:root): ja ...

  5. 搭建Dynamic Web Project(动态web项目)的springmvc工程2

    本文转载自:http://blog.csdn.net/typa01_kk/article/details/45905129 此篇为“创建Dynamic Web Projec工程,”搭建Dynamic ...

  6. (转)Oracle执行字符串

    declare v_out ); begin execute immediate 'select p_guid from c_itcomp where rownum = 1 ' into v_out; ...

  7. 【转】使用JMeter 完成常用的压力测试(一)

    本文介绍了 JMeter 相关的基本概念.并以 JMeter 为例,介绍了使用它来完成最常用的三种类型服务器,即 Web服务器.数据库服务器和消息中间件,压力测试的方法.步骤以及注意事项. 讲到测试, ...

  8. 普及组2008NOIP 排座椅(贪心+排序)

    排座椅 时间限制: 1 Sec  内存限制: 50 MB提交: 4  解决: 3[提交][状态][讨论版][命题人:外部导入] 题目描述 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任 ...

  9. 关于ESXI能虚拟出多少个虚拟机和CPU的关系

    当你的虚拟机报如下错误的时候: esxi5.0版本最高配置: https://www.vmware.com/content/dam/digitalmarketing/vmware/zh-cn/pdf/ ...

  10. PHP $_SERVER变量

    <?php #测试网址: http://localhost/t/test.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br ...