是否可以使用@RequestMapping检查标头的值

时间:2014-12-01 15:07:39

标签: java spring spring-mvc annotations httprequest

我想验证收到的请求是否有一些标题,并且这些标题符合某些条件。我看到我可以使用@requestmapping检查所有标题是否存在:

@RequestMapping(method  = RequestMethod.POST,
            headers = {"PHS-DP-Created-Date","PHS-DP-Modified-Date","PHS-DP-Accessed-Date","PHS-DP-Revision"},
            value   = {"/{accountID}/{containerID}/{objectID:.+}"})

但我无法找到一种方法来检查某些条件下的值(例如值> 0)

是否可以使用注释?

1 个答案:

答案 0 :(得分:2)

您只能检查特定标头是否存在以及它是否等于某个值。例如:

@RequestMapping(value = "/hello", headers = "my-header=my-value", method = RequestMethod.POST)
...
@RequestMapping(value = "/hello", headers = "my-header!=my-value", method = RequestMethod.POST)

您不能遗憾地检查任何其他条件。要了解有关详细信息的更多信息,请查看HeadersRequestCondition类。

您唯一的选择是创建自定义RequestMappingHandlerMapping并更改请求映射到方法的行为。