Spring 4 MVC:如果找不到,则将控制器参数绑定到HEADER或REQUEST PARAM

时间:2015-07-07 19:27:46

标签: spring-mvc

有没有办法将控制器方法参数绑定到(1)请求 param ,如果未设置请求参数,还有(2)请求标头?价值的一种后备来源......

我已经尝试了以下但是它不起作用,因为显然第一个注释总是赢。

@RequestMapping("/")
public MyObject getMyObject( @RequestParam("paramName")
                             @RequestHeader("headerName") String value ) {
   ...
}

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

不仅第一个注释将应用于method参数。所以只需定义2个可选参数,如下所示:

@RequestMapping("/")
public MyObject getMyObject( 
    @RequestParam(value = "paramName", required = false) String requestParamValue,
    @RequestHeader(value = "paramName", required = false) String headerValue) {
    String value = requestParamValue != null ? requestParamValue : headerValue;
}