绑定数据
使用 @RequestParam 注解
以 OOP 方式绑定数据
从 OOP 的角度分析,在应用程序中必然会存在一个描述用户的类。
@RequestMapping("/register",method = RequestMethod.POST)
public String register(User user) {
System.out.println(user);
return null;
}
原理很简单,表单中数据以 key=value&key=value 的方式提交,此处的 key 实质是表单控件的名称。注册表单中的数据在请求包中的格式形式如下:
userNname=abc&userPassword=123456

如上图所示,Spring MVC 能自动解析这个数据,然后自动注入到对象的同名属性中。所以一定要保证对象的属性名与表单中提交数据时使用的参数名(key)一致。
对象级联
OOP 代码中经常会出现类似于 A 对象引用 B 对象,B 对象引用 C 对象的现象。 类似于现实生活中的小王有一辆汽车,汽车有一把钥匙……
如果每一个用户都有一辆汽车,用 OOP 描述,意味着 User 类中有一个对 Car 的引用类型属性。
只需要在表单页面中添加如下代码,控制器端不做任何修改。如此,除了能接收用户数据外,还能接收汽车的信息。
<form action="user/register" method="post">
用户名:<input type="text" value="" name="userName" />
<br />
密码:<input type="password" value="" name="userPassword" /> <br />
汽车类型:<input type="text" value="" name="car.carType" /> <br />
汽车颜色:<input type="text" value="" name="car.carColor" /> <br />
<input type="submit" value="注册" name="btnRegister" />
<input type="reset" value="重置" name="btnReset" />
</form>
也就是说,Spring MVC 支持对象级联自动数据绑定。
本文介绍了Spring MVC如何绑定表单数据,包括使用@RequestParam注解、以OOP方式绑定数据以及对象级联的实现。通过匹配表单控件名称与对象属性,Spring MVC能自动将请求参数注入到对象中,同时支持对象级联的数据绑定,使得处理复杂数据结构变得更加方便。
2275

被折叠的 条评论
为什么被折叠?



