springmvc(基础四) Springmvc 数据绑定(2)
2016-06-22 16:00
423 查看
一、User实体对象:
二、Controller代码:
请求路径:
http://localhost/user/addUser.do?user.name="test"
那么在后台接受到的参数中,user对象的name属性是null。
如果路径换为http://localhost/user/addUser.do?name="test",则user对象的name属性是test。
这里必须用name="test"而不是user.name="test",因为默认情况下springMVC是不支持user.name这种传参方式的。
如果有个对象manager中也有name这个相同的属性,那么可以采用user.name,manager.name来传输参数。
但是这个需要在controller中添加一个前缀绑定:
添加绑定前缀后的controller类如下:
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; } }
二、Controller代码:
@Controller @RequestMapping("/user") public UserController extends BaseController{ @RequestMapping("/addUser") public void testBinderOuput(@ModelAttribute User user, HttpServletRequest request, HttpServletResponse response){ System.out.println(user); } }
请求路径:
http://localhost/user/addUser.do?user.name="test"
那么在后台接受到的参数中,user对象的name属性是null。
如果路径换为http://localhost/user/addUser.do?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); } }这样在使用连接http://localhost/user/addUser.do?user.name="test",去请求时,后台拿到的name的参数就不会为null了。
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- C# MVC模式下商品抽奖功能实现
- Zend的MVC机制使用分析(二)
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.NET Mvc开发之查询数据
- ASP.NET MVC中将控制器分离到类库的实现
- asp.net实现在非MVC中使用Razor模板引擎的方法
- ASP.NET MVC中的AJAX应用
- 为ASP.NET MVC及WebApi添加路由优先级
- ASP.NET MVC中图表控件的使用方法
- Asp.net mvc实时生成缩率图到硬盘