Spring - 为请求标头名

时间:2015-12-02 11:12:56

标签: java spring spring-mvc

Spring存在问题,并将请求标头名称值注入控制器 这是代码:

@Controller
public class ApiController {

    @Value("${param.header_name}")
    private String param;

    @RequestMapping(value = "/**")
    public void handleApiRequest(final HttpServletRequest request, final HttpServletResponse response,
        @RequestHeader(value = param) final String param)

使用 @PropertySource PropertySourcesPlaceholderConfigurer 定义属性。

问题是:

  

"注释属性RequestHeader.value的值必须是a   不断表达。"

但是不可能将值注入常量(最终静态)字段。这有解决方法吗?我想使用RequestHeader注释/映射和属性文件来定义标题名称。

1 个答案:

答案 0 :(得分:2)

注释中使用的值必须在编译时可解析,但param的值只能在运行时确定

我看到的唯一解决方案是使用HttpServletRequest.getHeader(String)

String headerValue = request.getHeader(param);