对于最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

方法参数

下表列出了支持的控制器方法参数。spring-doc.cadn.net.cn

对于需要阻塞 I/O(例如,读取请求体)才能解析的参数,支持响应式类型(Reactor、RxJava 或其他)。这一点已在“描述”列中标明。对于不需要阻塞的参数,则不应使用响应式类型。spring-doc.cadn.net.cn

JDK 1.8 的 java.util.Optional 可作为方法参数使用,与带有 required 属性的注解(例如 @RequestParam@RequestHeader 等)结合使用时,等同于设置 required=falsespring-doc.cadn.net.cn

控制器方法参数 <description> </description>

ServerWebExchangespring-doc.cadn.net.cn

访问完整的 ServerWebExchange——包含 HTTP 请求和响应、请求和会话属性、checkNotModified 方法等的容器。spring-doc.cadn.net.cn

ServerHttpRequest, ServerHttpResponsespring-doc.cadn.net.cn

访问 HTTP 请求或响应。spring-doc.cadn.net.cn

WebSessionspring-doc.cadn.net.cn

访问会话。除非添加了属性,否则不会强制启动新会话。支持响应式类型。spring-doc.cadn.net.cn

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

当前已认证的用户——如果已知,可能是某个特定的 Principal 实现类。 支持响应式类型。spring-doc.cadn.net.cn

org.springframework.http.HttpMethodspring-doc.cadn.net.cn

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

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

当前请求的区域设置,由可用的最具体的 LocaleResolver 确定——实际上就是所配置的 LocaleResolver/LocaleContextResolverspring-doc.cadn.net.cn

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

LocaleContextResolver 确定的与当前请求关联的时区。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

用于访问查询参数。参数值会被转换为声明的方法参数类型。请参阅 @RequestParamspring-doc.cadn.net.cn

请注意,使用 @RequestParam 是可选的——例如,用于设置其属性。 请参见本表格后面“任何其他参数”一节。spring-doc.cadn.net.cn

@RequestHeaderspring-doc.cadn.net.cn

用于访问请求头。请求头的值会被转换为声明的方法参数类型。请参阅 @RequestHeaderspring-doc.cadn.net.cn

@CookieValuespring-doc.cadn.net.cn

用于访问 Cookie。Cookie 值会被转换为声明的方法参数类型。 请参阅 @CookieValuespring-doc.cadn.net.cn

@RequestBodyspring-doc.cadn.net.cn

用于访问 HTTP 请求体。请求体内容通过使用 HttpMessageReader 实例转换为声明的方法参数类型。支持响应式类型。 请参阅 @RequestBodyspring-doc.cadn.net.cn

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

用于访问请求头和请求体。请求体会被转换为 HttpMessageReader 个实例。 支持响应式类型。请参阅 HttpEntityspring-doc.cadn.net.cn

@RequestPartspring-doc.cadn.net.cn

用于访问 multipart/form-data 请求中的某一部分。支持响应式类型。 参见多部分(Multipart)内容多部分数据(Multipart Data)spring-doc.cadn.net.cn

java.util.Maporg.springframework.ui.Modelorg.springframework.ui.ModelMapspring-doc.cadn.net.cn

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

@ModelAttributespring-doc.cadn.net.cn

用于访问模型中现有的属性(如果不存在则实例化),并应用数据绑定和验证。另请参阅 @ModelAttribute 以及 ModelDataBinderspring-doc.cadn.net.cn

请注意,使用 @ModelAttribute 是可选的——例如,用于设置其属性。 请参见本表格后面“任何其他参数”一节。spring-doc.cadn.net.cn

Errors, BindingResultspring-doc.cadn.net.cn

用于访问命令对象(即 @ModelAttribute 参数)的验证和数据绑定所产生的错误。必须在经过验证的方法参数之后立即声明一个 ErrorsBindingResult 参数。spring-doc.cadn.net.cn

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

用于标记表单处理完成,这将触发清理通过类级别 @SessionAttributes 注解声明的会话属性。 有关更多详细信息,请参阅 @SessionAttributesspring-doc.cadn.net.cn

UriComponentsBuilderspring-doc.cadn.net.cn

用于根据当前请求的主机、端口、协议方案和上下文路径来构建相对 URL。请参阅URI 链接spring-doc.cadn.net.cn

@SessionAttributespring-doc.cadn.net.cn

用于访问任何会话属性——这与由于类级别的 @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 判定),则解析为 https://docs.spring.io/spring-framework/docs/6.0.23/javadoc-api/org/springframework/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-;否则,解析为 @ModelAttributespring-doc.cadn.net.cn