java - 如何在拦截器中获取 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”中写任何东西?
解决方案
在拦截器预处理方法中,使用样板代码检查标头。如果不存在,请设置默认值。并且在控制器中假设标题始终存在。
推荐阅读
- powershell - 用于检查域并安装应用程序 1 的 Powershell 脚本,否则它需要安装应用程序 2
- node.js - 节点串行端口导入错误:存在不是 node_modules/bindings.js 中的函数
- java - Memozied Fibonacci 未运行 vs 常规 Fibonacci 解决方案
- javascript - 映射因函数名称而失败,因内联函数而成功
- angular - 如何在 Angular 6 中重构双重订阅
- azure-devops - 花费精力或时间来汇总项目类型层次结构
- python - Keras model.predict 检查输入时出错:预期 conv2d_input 有 4 维,但得到的数组形状为 (128, 56)
- ssl - 带有客户端证书的 HttpClient POST 请求
- c++ - 如何通过引用正确传递迭代器?
- python - SQLAlchemy - 自引用表错误