(一)使用 @RequestParam 可以把请求参 数传递给请求方法
@RequestMapping(value = "/testRequestParam")
public String testRequestParam(@RequestParam(value="username") String un,
@RequestParam(value="age", required=false, defaultValue="0") int age) {
System.out.println("testRequestParam,username:" + un + ",age:" + age);
return SUCCESS;
}
<a href="springmvc/testRequestParam?username=atguigu&age=11">Test RequestParam</a>
– value:参数名
– required:是否必须。默认为 true, 表示请求参数中必须包含对应 的参数,若不存在,将抛出异常
-defaultValue 请求参数的默认值
(二)使用 @RequestHeader 绑定请求报头的属性值
@RequestMapping(value = "/testRequestHeader")
public String testRequestParam(@RequestHeader(value="Accept-Language") String al) {
System.out.println("testRequestHeader,Accept-Language:"+al);
return SUCCESS;
}
<a href="springmvc/testRequestHeader">Test RequestHeader</a>
了解: 映射请求头信息 用法同 @RequestParam
(三)使用 @CookieValue 绑定请求中的 Cookie 值
@RequestMapping(value = "/testCookieValue")
public String testCookieValue(@CookieValue(value="JSESSIONID") String sessionId) {
System.out.println("testCookieValue:sessionId:"+sessionId);
return SUCCESS;
}
<a href="springmvc/testCookieValue">Test CookieValue</a>
@CookieValue: 映射一个 Cookie 值. 属性同 @RequestParam
(四)使用 POJO 对象绑定请求参数值
Handlers:
@RequestMapping("/testPojo")
public String testPojo(User user) {
System.out.println("testPojo: " + user);
return SUCCESS;
}
请求链接:
<form action="springmvc/testPojo" method="post">
username: <input type="text" name="username"/>
<br>
password: <input type="password" name="password"/>
<br>
email: <input type="text" name="email"/>
<br>
age: <input type="text" name="age"/>
<br>
city: <input type="text" name="address.city"/>
<br>
province: <input type="text" name="address.province"/>
<br>
<input type="submit" value="Submit"/>
</form>
POJO:
public class User {
private String username;
private String password;
private String email;
private int age;
private Address address;
public String toString() {
return "User [username=" + username + ", password=" + password
+ ", email=" + email + ", age=" + age + ", address=" + address+ "]";
}
}
Spring MVC 会按请求参数名和 POJO 属性名进行自动匹 配,自动为该对象填充属性值。支持级联属性。 如:dept.deptId、dept.address.tel 等
(五)使用 Servlet API 作为入参
@RequestMapping("/testServletAPI")
public void testServletAPI(HttpServletRequest request,HttpServletResponse response,
Writer out) throws IOException {
System.out.println("testServletAPI: " + request + "," + response);
out.write("hello springmvc");
//return SUCCESS;
}
<a href="springmvc/testServletAPI">Test ServletAPI</a>
可以使用 Serlvet 原生的 API 作为目标方法的参数 具体支持以下类型
* HttpServletRequest
* HttpServletResponse
* HttpSession
* java.security.Principal
* Locale InputStream
* OutputStream
* Reader
* Writer