我想在我的所有请求到达控制器之前添加一个属性。
我在用什么:
@Component
public class SessionValidatorInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
.... some code ....
request.setAttribute("validRequest","true");
.... more code ...
return true;
}
现在我要在我的休息控制器中获取此属性:
public ResponseEntity<?> someMethod(HttpServletRequest request){
request.getAttribute("validSession");
...
我的问题是,我可以像@RequestParam(&#34; validSession&#34;)或@PathVariable或其他更优雅的方式做到这一点? 春天能为我做这件事吗?
感谢任何帮助。
答案 0 :(得分:4)
在Spring 4.3中,为此添加了@RequestAttribute
注释。
public void yourMethod(@RequestAttribute("validRequest") boolean valid)
这样的事情应该可以解决问题。
如果您使用的是早期版本的Spring,则可以实现自己的HandlerMethodArgumentResolver
来执行相同操作。
答案 1 :(得分:1)
只需使用@RequestAttribute
像这样
public ResponseEntity<?> someMethod(HttpServletRequest request,
@RequestAttribute("validSession") String xyz){
}
因为,牛仔先生没有回答,我想为什么不是我。 ^ _ ^