如何使用Interceptor在Spring Controller中设置字段

时间:2015-09-14 22:59:36

标签: java spring-mvc interceptor

我有一个像下面这样的控制器

@RestController
class TestController{
 private String country;

  public String m1(){}
  public String m2(){}
  public String m3(){}
  public String m4(){}

}

所有方法m1到m4都需要从标题中获取的国家/地区。

是否有一种方法可以为此控制器的所有方法执行此操作。

我尝试使用Interceptor但是,在拦截器执行结束后我无法获得国家/地区。那就是我总是让国家成为空的

1 个答案:

答案 0 :(得分:2)

Spring MVC提供了@RequestHeader

  

表示应将方法参数绑定到Web请求标头

适当地注释您的处理程序方法参数

@RequestMapping("/somePath")
public ReturnType example(@RequestHeader("country-header") String country) {
    // use it
}

Spring MVC堆栈将提取标头值并使用它来调用您的处理程序方法。