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

方法参数

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

JDK 8java.util.Optional作为方法参数支持,与 具有必填属性(例如,@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.ServletResponse。spring-doc.cadn.net.cn

选择任何特定的请求或响应类型——例如,ServletRequest,HttpServletRequest, 或者说是Spring的多部分请求,MultipartHttpServletRequest.spring-doc.cadn.net.cn

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

强制执行会话的存在。因此,这样的论证永远不会成立. 请注意,会话访问并非线程安全。考虑设置RequestMappingHandlerAdapter实例同步OnSession旗帜变为true如果是多重的话 请求允许同时访问会话。spring-doc.cadn.net.cn

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

Servlet 4.0 push builder API,用于程序化 HTTP/2 资源推送。 注意,根据Servlet规范,注入的推送构建器实例可以为空,如果客户端 不支持该HTTP/2功能。spring-doc.cadn.net.cn

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

当前认证用户——可能是特定的用户主要如果已知实现类。spring-doc.cadn.net.cn

注意,如果该参数被注释以便自定义解析器解析,则不会被积极解析 然后通过以下方式恢复默认分辨率HttpServletRequest#getUserPrincipal. 例如,春季安全认证实现主要并且将作为这样注入,通过HttpServletRequest#getUserPrincipal,除非也注释为@AuthenticationPrincipal如果是这样 通过自定义的Spring Security解析器通过认证#getPrincipal.spring-doc.cadn.net.cn

Http方法spring-doc.cadn.net.cn

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

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

当前请求地点,由最具体的决定LocaleResolver可获得(in 效果,配置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.读者spring-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模板变量。参见上呼吸道模式spring-doc.cadn.net.cn

@MatrixVariablespring-doc.cadn.net.cn

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

@RequestParamspring-doc.cadn.net.cn

用于访问 Servlet 请求参数,包括多部分文件。参数值 转换为声明的方法参数类型。看@RequestParam也 作为多部分spring-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请求体。正文内容转换为声明的方法 参数类型通过使用HttpMessage转换器实现。看@RequestBody.spring-doc.cadn.net.cn

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

用于访问请求头和正文。车身通过HttpMessage转换器. 参见 HttpEntityspring-doc.cadn.net.cn

@RequestPartspring-doc.cadn.net.cn

访问 a 中的某个部分多部分/形式-数据请求,转换零件的身体 带有HttpMessage转换器.参见多部分spring-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

重定向属性spring-doc.cadn.net.cn

指定在重定向时使用的属性(即附加到查询后) 字符串)和闪存属性,在重定向后请求时临时存储。 参见重定向属性闪光属性spring-doc.cadn.net.cn

@ModelAttributespring-doc.cadn.net.cn

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

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

错误,绑定结果spring-doc.cadn.net.cn

用于访问命令对象验证和数据绑定中的错误 (即@ModelAttribute论证)或验证 a 的错误@RequestBody@RequestPart参数。你必须申报错误绑定结果论点 紧接验证方法论元之后。spring-doc.cadn.net.cn

会话状态+ 班级@SessionAttributesspring-doc.cadn.net.cn

对于表单处理完成,触发会话属性清理 通过阶级层面宣布@SessionAttributes注解。看@SessionAttributes更多细节请阅读。spring-doc.cadn.net.cn

UriComponents构建器spring-doc.cadn.net.cn

用于准备一个相对于当前请求主机、端口、方案、上下文路径和 字面意义上的 servlet 映射部分。请参见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 确定), 它被解析为@RequestParam.否则,它被解析为@ModelAttribute.spring-doc.cadn.net.cn