*
Java 基本数据类型 和String
默认情况下将按名称匹配的方式绑定到 URL 参数上,可以通过 @RequestParam 注解改变默认的绑定规则
* Request or response objects (Servlet API).
Request或者response 对象 (Servlet API),选择任意的request或者response类型,例如:ServletRequest 、 HttpServletRequest.
* Session object (Servlet API).
session对象(Servlet API):构成类型有HttpSession,这个类型的参数增强了当前通信的session,因此,这个参数永远不会null.
注意:session通道不是线程安全的,特别是在Servlet环境下,如果允许多个请求访问session的情况下建议将AnnotationMethodHandlerAdapter的synchronizeOnSession属性设置为"true"
* org.springframework.web.context.request.WebRequest or org.springframework.web.context.request.NativeWebRequest. Allows for generic request parameter access as well as request/session attribute access, without ties to the native Servlet/Portlet API.
使用spring封装的WebRequest或者NativeWebRequest,与使用原生的Servlet/Portlet API不相上下。
*.java.util.Locale
用于获得当前的请求区域。
*.java.io.InputStream / java.io.Reader for access to the request's content. This value is the raw InputStream/Reader as exposed by the Servlet API.
值为原始的InputStream/Reader被Servlet API 可以借此访问 request 的内容
*.java.io.OutputStream / java.io.Writer for generating the response's content. This value is the raw OutputStream/Writer as exposed by the Servlet API.
用于产生响应的内容,以此操作 response 的内容
*.java.security.Principal containing the currently authenticated user.
包含当前认证的用户。
Spring 3.0增加了一个@ PathVariable注解来支持可变的请求路径
*.@PathVariable annotated parameters for access to URI template variables
用于注解参数对应到地址栏的变量参数
例如:
Java代码
@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable("ownerId") String ownerId, Model model) {
// implementation omitted
}
访问地址"/owners/{ownerId}" 指定了访问变量名称为ownerId,当控制器处理这个请求的时候,ownerId的值被设置到请求的地址栏,
例如:当请求来自/owners/fred,值fred被绑定到访问方法的参数String ownerId
*.@RequestParam
用于注解参数到Servlet 请求的参数,参数值对应到控制器方法中声明的参数。
Java代码
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestParam("id") int petId, ModelMap model) {
Pet pet = this.clinic.loadPet(petId);
model.addAttribute("pet", pet);
return "petForm";
}
例如:请求的参数id对应到方法中的petId.
*.@RequestHeader
注解参数用于具体的Servlet请求的http头部,参数值被转换到生命的方法参数类型。
请求头部信息例如:Connection,Accept-Language、Accept-Charset等
Java代码
public void displayHeaderInfo(@RequestHeader("Connection") String connection,@RequestHeader("Accept-Encoding") String encoding) {
System.out.println("connection:" + connection);
System.out.println("Accept-Encoding:" + encoding);
}
*.@RequestBody
*.HttpEntity< >
*.java.util.Map / org.springframework.ui.Model / org.springframework.ui.ModelMap
它绑定 Spring MVC 框架中每个请求所创建的潜在的模型对象,它们可以被 Web 视图对象访问(如 JSP).用于增强传递到web视图页面的model,也就是说他们作为方法的参数后,页面视图就可以直接根据key来取得相应的值。
*.org.springframework.validation.Errors / org.springframework.validation.BindingResult
Bi