一、简单数据类型绑定
1.SpringMVC获得请求参数
如何接收到请求中传递过来的参数呢? 除了使用原生servlet的方法,还可以使用参数绑定的形式,如下面的方法中使用了Integer类型的参数,那么它就可以接收变量名为id的Integer类型的数据了。这种情况下url中的参数名要与处理器中的参数名匹配。
@RequestMapping("/addUI")
public String addUI(Integer id) {
return "addUI";
}
上面的代码使用url:http://localhost:8080/SpringMVC01/addUI.do?id=5
成功访问后,成功通过参数获得该id值
2.使用@RequestParam做映射
可以使用下面的方式,将url中的参数名与处理器的参数名做一个映射。
@RequestMapping("/addUI")
public String addUI(@RequestParam("xx") Integer id) {
System.out.println(id);
return "addUI";
}
(1)required属性
其中RequestParam还有一个required属性,@RequestParam(value="xx",required=true)
表示请求的url中必须要有xx属性,否则报错400。
@RequestMapping("/addUI")
public String addUI(@RequestParam(value="xx",required=true) Integer id) {
System.out.println(id);
return "addUI";
}
(2)defaultValue属性
该属性表示如果url中没有该参数的值时,给参数设定一个默认值。
@RequestMapping("/addUI")
public String addUI(@RequestParam(value="xx",required=true,defaultValue="2") Integer id) {
System.out.println(id);
return "addUI";
}
二、pojo数据类型绑定
url中属性名和处理器中的pojo形参中的属性名一致就可以完成自动映射。
1.简单pojo
创建一个User的pojo。
package com.gql.pojo;
public class User {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
//省略ser与get方法
在处理器中通过参数接收
@RequestMapping("/test")
public String addUI(User user) {
System.out.println();
return "addUI";
}
使用url:http://localhost:8080/SpringMVC01/test.do?id=9&name=abc
成功在处理器的参数中获得了url中的数据。
2.pojo级联
同时定义一个Person和User的pojo,将Person作为属性放在User的属性中。
Person的pojo
package com.gql.pojo;
public class Person {
private Integer id;
private String name;
//省略set和get方法
}
User的pojo
package com.gql.pojo;
public class User {
private Integer id;
private String name;
private Integer age;
private Person p;
//省略set和get方法
处理器:
@RequestMapping("/test")
public String addUI(User user) {
System.out.println();
return "addUI";
}
此时通过url:http://localhost:8080/SpringMVC01/test.do?id=1&name=zdy&p.id=4&p.name=ss
访问。处理器成功接收到url中的数据。