五,Spring MVC实用POJO进行参数传值

  

,,,,前面已经说了,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进行参数传值