设置标头中的值以请求DTO

时间:2018-07-18 11:38:11

标签: java spring spring-boot header

我正在为我的应用程序使用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);
}

2 个答案:

答案 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);