首页 > 解决方案 > 如何在拦截器中获取 RequestHeader 默认值

问题描述

我有一个拦截器:

public class SomeInterceptor extends HandlerInterceptorAdapter {

    @Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {

        System.out.println("Header: " + request.getHeader("defaultHeader"));

        return true;
    }
}

这是我的控制器:

@PostMapping("/test")
public ResponseEntity someMethod(@RequestHeader(name = "defaultHeader", defaultValue = "someValue", required = false) final String someValue) {
        //do something
}

有没有办法在拦截器中获取“someValue”的默认值?或者有没有办法在“someMethod”中执行任何操作之前制作一个将采用这个默认值的注释?或者任何其他方式来获取这个“someValue”而不在“someMethod”中写任何东西?

标签: javaspringspring-bootheaderinterceptor

解决方案


在拦截器预处理方法中,使用样板代码检查标头。如果不存在,请设置默认值。并且在控制器中假设标题始终存在。


推荐阅读