SpringMVC数据绑定
来源:互联网 发布:编程都用mac 编辑:程序博客网 时间:2024/06/05 00:04
SpringMVC数据绑定流程:
1.Spring MVC主框架将ServletRequest对象以及目标方法的入参实例传递给WebDataBinderFactory实例,以创建DataBinder(数据绑定器)实例对象
2.DataBinder在调用装配在Srping MVC上下文中的conversionService
组件进行数据类型转换,数据格式化工作,将Servlet中的请求信息填充到入参对象
中
3.调用validator对已经绑定了请求消息的入参对象进行数据合法性校验,并最终生成数据绑定结果BindingData对象
4.SpringMVC抽取BindingResult中的入参对象和校验错误对象.将他们赋给处理方法的响应入参
一.基本数据类型(int为例)
jsp:
<form action="testInt" >id:<input type="text" name="id" value="10"/><input type="submit" value="submit"></form>
controller:
@RequestMapping(value="testInt")public String testInt(int id){System.out.println(id);return "success";}
input中的name属性和目标方法的参数名相同,不同的话可以使用@RequestParam注解,如果input值为null或“”,目标方法参数为基本数据类型会报数据类型转换异常,解决方案是目标方法参数使用包装类。
二.对象类型
user类:
private int id;private String username;private String passsword;private int age;private String email;
jsp:
<form action="testUser" ><input type="hidden" name="id" value="1" /> <input type="text" name="username" value="zhangsan" /> <input type="text" name="age" value="10" /> <input type="text" name="email" value="asd@huawei.com" /><input type="submit" value="submit" /></form>
controller:
@RequestMapping("testUser")public String testUser(User user){System.out.println("user:"+user);return "success";}
input的name属性和user对象的属性名称要一样,且user属性要有对应的set方法
三.list集合类型
UserList类:
public class UserList {private List<User> userList;public List<User> getUserList() {return userList;}public void setUserList(List<User> userList) {this.userList = userList;}@Overridepublic String toString() {return "UserList [userList=" + userList + "]";}}
jsp:
<form action="testList" ><table><tr><td><input name="userList[0].id" value="1"></td><td><input name="userList[0].username" value="lisi"></td><td><input name="userList[0].age" value="22"></td><td><input name="userList[0].email" value="asd@huawei.com"></td></tr><tr><td><input name="userList[1].id" value="2"></td><td><input name="userList[1].username" value="wangwu"></td><td><input name="userList[1].age" value="23"></td><td><input name="userList[1].email" value="qwe@huawei.com"></td></tr><tr><input type="submit" value="submit"></tr></table></form>
controller:
@RequestMapping("testList")public String testList(UserList userList){for(User user:userList.getUserList()){System.out.println(user);}return "success";}
userList属性被定义成了list,所以在input的name属性中需要指定list下标
四.set集合类型
set和list类似,但set在使用时需要先在Set对象中add相应的数量的模型对象
private Set<User> userSet = new HashSet<User>();public UserSet() {userSet.add(new User());userSet.add(new User());}}
0 0
- 浅谈 SpringMVC 数据绑定
- 浅谈 SpringMVC 数据绑定
- SpringMVC 表单数据绑定
- SpringMVC数据绑定使用指南
- 浅谈 SpringMVC 数据绑定
- SpringMVC数据绑定
- 浅谈 SpringMVC 数据绑定
- SpringMVC数据绑定
- springmvc数据绑定
- springmvc 注解/数据绑定
- 浅谈 SpringMVC 数据绑定
- 浅谈 SpringMVC 数据绑定
- SpringMVC 数据绑定 Map
- SpringMvc数据绑定
- 浅谈SpringMVC数据绑定
- SpringMVC 数据绑定
- springmvc数据绑定
- springMVC数据对象绑定
- 一站式学习Wireshark(九):应用Wireshark显示过滤器分析特定数据流(上)
- Elasticsearch版本控制[并发安全]
- windows powershell中activate python2无效
- 傅里叶
- (四)利用矩阵对点云进行刚体变换
- SpringMVC数据绑定
- 蓝桥杯编程题——四平方和
- copy-on-write容器
- 解决Ueditor编辑器图片保存路径问题
- map 按key排序VS按value排序
- linux2-2控制对文件的访问
- (五)IO库教程一--PCD(Point Cloud Data)文件格式
- Java租车系统
- HDFS高可用 -Quorum Journal Manager