,,,,前面已经说了,spring mvc可以通过@PathVariable可以把url中的值映射到目标方法的参数上,也可以使用@RequestParam进行单个参数的传递,如果一次需要传递多个参数的话,就需要写多个相应的注解,那有没有什么更简单方便的方法呢?答案是有的,spring mvc有自动装箱的功能,可以通过参数的名字属性,给后台绑定的对象的对应的属性完成赋值操作,而且还支持级联操作,即支持嵌套。
1,使用POJO(传统的普通Java对象)进行参数传值
下面来看一下具体例子,定义一个用户对象,一个地址对象:
public class User { ,,,private String 用户名; ,,,private String 密码; ,,,private String 电子邮件; ,,,private int 年龄; ,,,private Address 地址; ,,,//省略获取和设置方法以及toString方法 ,,,…… }
/* * ,* spring mvc可以进行自动”装箱”,,会按照请求参数的名字完成和pojo属性之间的映射绑定, ,*自动为该对象填充属性值,并且支持级联属性 ,* ,* @param 用户 ,* @return ,*/@RequestMapping ("/testPojo”) public String  testPojo (User 用户){ ,,,System.out.println(用户); ,,,return “问候”; }
测试代码如下,有用户对象的属性,有级联属性地址:
& lt; form action="/testPojo/testPojo”,方法=皃ost”比; ,,,& lt; p> pojo测试,可以直接传递参数绑定到pojo对象上& lt;/p> ,,,用户名:& lt; input type=" text ", name="用户名"/祝辞,& lt; br/比; ,,,密码:& lt; input type=" text ", name="密码"/祝辞,& lt; br/比; ,,,电子邮件:& lt; input 类型=拔谋尽?name="电子邮件"/祝辞,& lt; br/比; ,,,年龄:& lt; input type=" text ", name="年龄"/祝辞,& lt; br/比; ,,,省:& lt; input 类型=拔谋尽?name=" address.province "/祝辞,& lt; br/比; ,,,城市:& lt; input 类型=拔谋尽?name=" address.city "/祝辞,& lt; br/比; ,,,& lt; input 类型=疤峤弧?value=" https://www.yisu.com/zixun/submit ",/比; & lt;/form>
2,使用Servlet原生API进行参数传值
,,,, spring mvc支持使用ServletRequest和ServletResponse等作为目标方法的参数.spring mvc支持的类型有以下几种ServletRequest, ServletResponse, HttpSession,校长,语境,InputStream, OutputStream、读者、作家,具体可以参见源码:
org.springframework.web.servlet.mvc.annotation。AnnotationMethodHandlerAdapter
五,Spring MVC实用POJO进行参数传值