我正在为我的应用程序使用String Boot。在拦截器中,我可以从标头中获取值,并希望将其添加到请求DTO中-不是设置标头,而是将值设置为请求DTO。我该怎么办?
试想一下,我的请求DTO看起来像这样:
public class RequestDTO{
private String field1;
private String field2;
// getters and setters for field1 and field2
}
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String value = request.getHeader("some_value");
// how to add header to request DTO?
// something like request.getRequest().setField1(value);
}
答案 0 :(得分:2)
您不能直接映射到DTO类,但是可以获取映射中的所有标头键值。例如:
@RequestMapping
public String handleRequestWithAllHeaders (@RequestHeader Map<String, String> header,
Model model) {
model.addAttribute("msg", "Trade request with all headers " + headers);
return "my-page";
}
或者您可以在here中找到更多选项
答案 1 :(得分:0)
在请求对象中设置值:something like request.getRequest().setAttribute(id,value);