You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中@RequestHeader参数名转义:含短横线请求头如何处理

解决Spring中@RequestHeader匹配带短横线请求头的参数名转义问题

当遇到If-None-Match这类含短横线、不符合Java命名规范的请求头时,无需显式指定@RequestHeader的name属性,仅通过参数名驼峰转短横线的规则即可完成映射:

  • 核心规则:Spring在未指定@RequestHeader的name/value时,会自动将方法参数的驼峰命名转换为短横线分隔格式(kebab-case),且匹配时默认忽略大小写。
  • 具体做法:将请求头名称的短横线去掉,每个短横线后的首字母大写,形成驼峰式参数名。比如If-None-Match对应参数名ifNoneMatch。

代码示例

@GetMapping("/demo")
public String handleHeader(@RequestHeader String ifNoneMatch) {
    // 此处ifNoneMatch会自动映射到请求头If-None-Match的值
    return "If-None-Match value: " + ifNoneMatch;
}

注意事项

要确保项目支持参数名获取:

  1. 使用Java 8及以上版本(依赖JEP 118的参数名特性);
  2. 编译时添加-parameters参数(Maven可在maven-compiler-plugin中配置<parameters>true</parameters>),让Spring能正确读取方法参数名。

内容的提问来源于stack exchange,提问作者Grim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:40:32