此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cadn.net.cn

方法参数

下表描述了支持的控制器方法参数。不支持反应式类型 对于任何参数。spring-doc.cadn.net.cn

JDK 8 的java.util.Optional支持作为方法参数与 具有required属性(例如@RequestParam,@RequestHeader, 和其他)并且等效于required=false.spring-doc.cadn.net.cn

控制器方法参数 描述

WebRequest,NativeWebRequestspring-doc.cadn.net.cn

对请求参数以及请求和会话属性的通用访问,无需直接 使用 Servlet API。spring-doc.cadn.net.cn

jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponsespring-doc.cadn.net.cn

选择任何特定的请求或响应类型,例如,ServletRequest,HttpServletRequest, 或 Spring 的MultipartRequest,MultipartHttpServletRequest.spring-doc.cadn.net.cn

jakarta.servlet.http.HttpSessionspring-doc.cadn.net.cn

强制会话的存在。因此,这样的论点从来都不是null. 请注意,会话访问不是线程安全的。考虑设置RequestMappingHandlerAdapter实例的synchronizeOnSessionflag 设置为true如果多个 允许请求并发访问会话。spring-doc.cadn.net.cn

jakarta.servlet.http.PushBuilderspring-doc.cadn.net.cn

用于编程 HTTP/2 资源推送的 Servlet 4.0 推送生成器 API。 请注意,根据 Servlet 规范,注入的PushBuilder如果客户端 不支持该 HTTP/2 功能。spring-doc.cadn.net.cn

java.security.Principalspring-doc.cadn.net.cn

当前经过身份验证的用户 — 可能是特定的Principalimplementation 类(如果已知)。spring-doc.cadn.net.cn

请注意,如果为了允许自定义解析程序解析此参数而对其进行批注,则不会预先解析此参数 在通过HttpServletRequest#getUserPrincipal. 例如,Spring SecurityAuthentication实现Principal并将通过以下方式注入HttpServletRequest#getUserPrincipal,除非它还使用@AuthenticationPrincipal在这种情况下,它 由自定义 Spring Security 解析器通过Authentication#getPrincipal.spring-doc.cadn.net.cn

HttpMethodspring-doc.cadn.net.cn

请求的 HTTP 方法。spring-doc.cadn.net.cn

java.util.Localespring-doc.cadn.net.cn

当前请求区域设置,由最具体的LocaleResolveravailable (在 effect 中,配置的LocaleResolverLocaleContextResolver).spring-doc.cadn.net.cn

java.util.TimeZone + java.time.ZoneIdspring-doc.cadn.net.cn

与当前请求关联的时区,由LocaleContextResolver.spring-doc.cadn.net.cn

java.io.InputStream,java.io.Readerspring-doc.cadn.net.cn

用于访问 Servlet API 公开的原始请求正文。spring-doc.cadn.net.cn

java.io.OutputStream,java.io.Writerspring-doc.cadn.net.cn

用于访问 Servlet API 公开的原始响应正文。spring-doc.cadn.net.cn

@PathVariablespring-doc.cadn.net.cn

用于访问 URI 模板变量。请参阅 URI 模式spring-doc.cadn.net.cn

@MatrixVariablespring-doc.cadn.net.cn

用于访问 URI 路径段中的名称-值对。请参见矩阵变量spring-doc.cadn.net.cn

@RequestParamspring-doc.cadn.net.cn

用于访问 Servlet 请求参数,包括 multipart 文件。参数值 转换为声明的方法参数类型。看@RequestParam也 替换为 Multipartspring-doc.cadn.net.cn

请注意,使用@RequestParam对于简单参数值是可选的。 请参阅本表末尾的“任何其他参数”。spring-doc.cadn.net.cn

@RequestHeaderspring-doc.cadn.net.cn

用于访问请求标头。标头值将转换为声明的方法参数 类型。看@RequestHeader.spring-doc.cadn.net.cn

@CookieValuespring-doc.cadn.net.cn

用于访问 Cookie。Cookie 值将转换为声明的方法参数 类型。看@CookieValue.spring-doc.cadn.net.cn

@RequestBodyspring-doc.cadn.net.cn

用于访问 HTTP 请求正文。正文内容被转换为声明的方法 参数类型HttpMessageConverter实现。看@RequestBody.spring-doc.cadn.net.cn

HttpEntity<B>spring-doc.cadn.net.cn

用于访问请求标头和正文。body 使用HttpMessageConverter. 请参阅 HttpEntityspring-doc.cadn.net.cn

@RequestPartspring-doc.cadn.net.cn

要访问multipart/form-datarequest, 转换部件的主体 替换为HttpMessageConverter.请参见 Multipartspring-doc.cadn.net.cn

java.util.Map,org.springframework.ui.Model,org.springframework.ui.ModelMapspring-doc.cadn.net.cn

用于访问在 HTML 控制器中使用并作为模板公开的模型 视图渲染的一部分。spring-doc.cadn.net.cn

RedirectAttributesspring-doc.cadn.net.cn

指定要在重定向时使用的属性(即,要附加到查询中) string) 和 flash 属性临时存储,直到重定向后的请求。 请参阅重定向属性Flash 属性spring-doc.cadn.net.cn

@ModelAttributespring-doc.cadn.net.cn

要访问模型中的现有属性(如果不存在,则实例化),请使用 应用了数据绑定和验证。看@ModelAttribute以及 ModelDataBinder.spring-doc.cadn.net.cn

请注意,使用@ModelAttribute是可选的(例如,设置其属性)。 请参阅此表末尾的“任何其他参数”。spring-doc.cadn.net.cn

Errors,BindingResultspring-doc.cadn.net.cn

用于访问命令对象的验证和数据绑定中的错误 (即@ModelAttributeargument) 或验证@RequestBody@RequestPart参数。您必须声明一个ErrorsBindingResult论点 紧跟在 validated method 参数之后。spring-doc.cadn.net.cn

SessionStatus+ 类级别@SessionAttributesspring-doc.cadn.net.cn

用于将表单处理标记为完成,从而触发会话属性的清理 通过类级别@SessionAttributes注解。看@SessionAttributes了解更多详情。spring-doc.cadn.net.cn

UriComponentsBuilderspring-doc.cadn.net.cn

用于准备相对于当前请求的主机、端口、方案、上下文路径和 Servlet 映射的 Literal 部分。请参阅 URI 链接spring-doc.cadn.net.cn

@SessionAttributespring-doc.cadn.net.cn

用于访问任何 session 属性,与存储在 session 中的 model 属性相反 由于类级别@SessionAttributes声明。看@SessionAttribute了解更多详情。spring-doc.cadn.net.cn

@RequestAttributespring-doc.cadn.net.cn

用于访问请求属性。看@RequestAttribute了解更多详情。spring-doc.cadn.net.cn

任何其他参数spring-doc.cadn.net.cn

如果方法参数与此表中的任何先前值不匹配,并且 简单类型(由 BeanUtils#isSimpleProperty 确定), 它解析为@RequestParam.否则,它将解析为@ModelAttribute.spring-doc.cadn.net.cn