WebRequest , NativeWebRequest
|
一般可访问请求参数、请求和会话属性,而无需直接使用 Servlet API。 |
jakarta.servlet.ServletRequest , jakarta.servlet.ServletResponse
|
选择任何特定请求或响应类型——例如,ServletRequest 、HttpServletRequest ,或 Spring 的 MultipartRequest 、MultipartHttpServletRequest 。 |
jakarta.servlet.http.HttpSession
|
强制执行会话的存在。因此,这样的参数决不会是 null 。请注意,会话访问不是线程安全的。如果允许多个请求并发访问会话,请考虑将 RequestMappingHandlerAdapter 实例的 synchronizeOnSession 标志设置为 true 。 |
jakarta.servlet.http.PushBuilder
|
Servlet 4.0 push builder API 用于基于编程的 HTTP/2 资源推送。请注意,根据 Servlet 规范,注入的 PushBuilder 实例可以为 null,如果客户端不支持该 HTTP/2 功能的话。 |
java.security.Principal
|
当前经过身份验证的用户,有可能是特定 Principal 实现类的实例(如果已知)。请注意,如果不急于求成地解析该参数(如果进行了注解),则可以使用自定义解析器在通过 HttpServletRequest#getUserPrincipal 回退到默认解析之前解析该参数。例如,Spring Security Authentication 实现 Principal ,并且通过 HttpServletRequest#getUserPrincipal 以这种方式进行注入,除非同时对其实施 @AuthenticationPrincipal 注释,在这种情况下,它将通过 Authentication#getPrincipal 使用自定义 Spring Security 解析器解析。 |
HttpMethod
|
请求的 HTTP 方法。 |
java.util.Locale
|
当前请求语言环境,由最具体的 LocaleResolver 确定(实际上是配置的 LocaleResolver 或 LocaleContextResolver )。 |
java.util.TimeZone + java.time.ZoneId
|
当前请求相关联的时区,由 LocaleContextResolver 确定。 |
java.io.InputStream , java.io.Reader
|
访问 Servlet API 暴露的原始请求正文。 |
java.io.OutputStream , java.io.Writer
|
访问 Servlet API 暴露的原始响应正文。 |
@PathVariable
|
用于访问 URI 模板变量。请参见 URI patterns。 |
@MatrixVariable
|
用于访问 URI 路径段中的名称-值对。请参见 Matrix Variables。 |
@RequestParam
|
用于访问 Servlet 请求参数,包括 multipart 文件。参数值转换为声明的方法参数类型。请参见 @RequestParam 以及 Multipart。请注意,对于简单参数值,使用 @ RequestParam 是可选的。请参见本表末尾的“任何其他参数 ”。 |
@RequestHeader
|
访问请求标题。标题值将转换为声明的方法参数类型。请参阅 xref:web/webmvc/mvc-controller/ann-methods/requestheader.adoc[@RequestHeader 。 |
@CookieValue
|
访问 cookie。cookie 值将转换为声明的方法参数类型。请参阅 xref:web/webmvc/mvc-controller/ann-methods/cookievalue.adoc[@CookieValue 。 |
@RequestBody
|
访问 HTTP 请求正文。使用 HttpMessageConverter 实现将正文内容转换为声明的方法参数类型。请参阅 xref:web/webmvc/mvc-controller/ann-methods/requestbody.adoc[@RequestBody 。 |
HttpEntity<B>
|
用于访问请求头和正文。正文使用 HttpMessageConverter 转换。请参见 HttpEntity。 |
@RequestPart
|
用于在 multipart/form-data 请求中访问某个部分,转换该部分正文的 HttpMessageConverter 。请参见 Multipart。 |
java.util.Map , org.springframework.ui.Model , org.springframework.ui.ModelMap
|
如需访问 HTML 控制器中使用的模型,并将其作为视图渲染的一部分公开到模板中。 |
RedirectAttributes
|
指定在重定向 (即追加到查询字符串) 和闪存属性的情况下使用哪些属性,以便临时存储到重定向后进行的请求。请参见 Redirect Attributes 和 Flash Attributes。 |
@ModelAttribute
|
用于访问模型中的现有属性(如果不存在则实例化),并应用数据绑定和验证。请参见 @ModelAttribute 以及 Model 和 DataBinder 。请注意,使用 @ModelAttribute 是可选的(例如,要设置其属性)。请参见本表末尾的“任何其他参数 ”。 |
Errors , BindingResult
|
如需访问命令对象(也就是说,一个 @ModelAttribute 参数)的验证和数据绑定的错误,或一个 @RequestBody 或 @RequestPart 参数验证的错误。您必须在经过验证的方法参数之后立即声明一个 Errors 或 BindingResult 参数。 |
SessionStatus + class-level @SessionAttributes
|
做标记以便完成表单处理,从而触发清理通过类级 @SessionAttributes 注解声明的会话属性。更多详细信息,请参见 xref:web/webmvc/mvc-controller/ann-methods/sessionattributes.adoc[@SessionAttributes 。 |
UriComponentsBuilder
|
用于针对当前请求的主机、端口、方案、上下文路径以及 servlet 映射的字面部分准备相对 URL。请参见 URI Links。 |
@SessionAttribute
|
如需访问任何会话属性,与根据类级 @SessionAttributes 声明存储在会话中的模型属性不同。更多详细信息,请参见 xref:web/webmvc/mvc-controller/ann-methods/sessionattribute.adoc[@SessionAttribute 。 |
@RequestAttribute
|
如需访问请求属性。更多详细信息,请参见 xref:web/webmvc/mvc-controller/ann-methods/requestattrib.adoc[@RequestAttribute 。 |
Any other argument |
如果一个方法参数与本表中早先的值中的任何值都不匹配,并且它是一个简单类型(由 BeanUtils#isSimpleProperty 确定),那么它会作为一个 @RequestParam 进行解析。否则,它会作为一个 @ModelAttribute 进行解析。 |