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

方法参数

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

响应式类型(Reactor、RxJava、或其他)在需要阻塞 I/O(例如,读取请求体)才能解决的参数上是受支持的。这在描述列中标记。对于不需要阻塞的参数,不期望使用响应式类型。spring-doc.cadn.net.cn

JDK 1.8 的 java.util.Optional 作为方法参数被支持,并且可以与具有 required 属性的注解结合使用(例如,@RequestParam@RequestHeader 等),并且等价于 required=falsespring-doc.cadn.net.cn

控制器方法参数 描述

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 请求中访问某个部分的支持。支持响应式类型。 参见 多部分内容多部分数据spring-doc.cadn.net.cn

java.util.Map, org.springframework.ui.Model, 和 org.springframework.ui.ModelMap.spring-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声明的结果存储在会话中的模型属性相反。有关更多详细信息,请参见 @SessionAttributespring-doc.cadn.net.cn

@RequestAttributespring-doc.cadn.net.cn

用于访问请求属性。有关更多详细信息,请参见 @RequestAttributespring-doc.cadn.net.cn

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

如果一个方法参数没有匹配到上述任何一种情况,默认情况下,它将被解析为 @RequestParam 如果它是简单类型,如通过 BeanUtils#isSimpleProperty, 确定的, 或者作为 @ModelAttribute,否则。spring-doc.cadn.net.cn