springMVC传对象参数
2014-02-25 16:24
513 查看
springController:
Use对象:
请求路径:
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类如下:
有个专门讨论这个问题的主题:http://www.iteye.com/topic/1124433?page=2可以参考下
@Controller @RequestMapping("/user") public UserController extends BaseController{ @RequestMapping("/addUser") public void testBinderOuput(@ModelAttribute User user, HttpServletRequest request, HttpServletResponse response){ System.out.println(user); } }
Use对象:
public Class User{ private String name; private int sex; private String address; private int id; public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getId() { return id; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } }
请求路径:
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类如下:
@Controller @RequestMapping("/user") public UserController extends BaseController{ @InitBinder("manager") public void initBinder1(WebDataBinder binder) { binder.setFieldDefaultPrefix("manager."); } @InitBinder("user") public void initBinder2(WebDataBinder binder) { binder.setFieldDefaultPrefix("user."); } @RequestMapping("/addUser") public void testBinderOuput(@ModelAttribute User user, HttpServletRequest request, HttpServletResponse response){ System.out.println(user.getName); } @RequestMapping("/addManager") public void testBinderOuput(@ModelAttribute Manager manager, HttpServletRequest request, HttpServletResponse response){ System.out.println(manager.getName); } }这样在使用连接localhost/user/addUser?user.name="test",去请求时,后台拿到的name的参数就不为null了。
有个专门讨论这个问题的主题:http://www.iteye.com/topic/1124433?page=2可以参考下
相关文章推荐
- 8.6.2: Spring整合Struts2---MVC框架与Spring整合的思考
- 8.6.1: Spring整合Struts2---启动Spring容器
- eclipse生成hadoop程序示例
- 8.5.4: Spring的事务---使用@Transactional
- ubuntu 查看jdk位置
- 8.5.3: Spring的事务---Spring2.x的事务配置策略
- eclipse+maven+nexus
- 8.5.2: Spring的事务---使用TransactionProxyFactoryBean创建事务代理
- JAVA面向对象的概念
- Java中遍历map的代码
- 在Eclipse编译aidl文件中出现couldn't find import for class原因
- 8.5.1: Spring的事务---Spring支持的事务策略
- eclipse中修改从svn上check下来的项目名称
- jdk环境一键安装配置
- 8.4.6: Spring的AOP---基于XML配置文件的管理方式
- 8.4.5: Spring的AOP---基于Annotation的零配置方式
- 8.4.3: Spring的AOP---AOP的基本概念
- 8.4.4: Spring的AOP---Spring的AOP支持
- Java Nio 实现文件的传输
- 最新JAVA编程题全集(50题及答案)