我的控制器中有一堆参数,希望将它们映射到一个单独的POJO中,以保持可读性。还有一个@CookieValue,@RequestHeader,我需要评估并寻找一个解决方案,将它们映射到那个POJO。但是怎么做呢?
我在博客上看到了一个可能的解决方案,但是它不起作用,变量保持为空。
主计长:
@RequestMapping(path = MAPPING_LANGUAGE + "/category", produces = MediaType.TEXT_HTML_VALUE)
@ResponseBody
public String category(CategoryViewResolveModel model) {
    doSomething();
}我的POJO是:
public class CategoryViewResolveModel {
private String pageLayoutCookieValue;
public CategoryViewResolveModel() {
}
public CategoryViewResolveModel(
        @CookieValue(value = "SOME_COOKIE", required = false) String pageLayoutCookieValue) {
    this.pageLayoutCookieValue = pageLayoutCookieValue;
}
... some other RequestParams, PathVariables etc.
}发布于 2016-01-27 16:56:23
根据文档,@CookieValue和@RequestHeader是不可能的。
Servlet和Portlet环境中带注释的处理程序方法支持此注释。
发布于 2017-03-10 17:33:29
查看一下:https://www.petrikainulainen.net/programming/spring-framework/spring-from-the-trenches-creating-a-custom-handlermethodargumentresolver/,而不是使用getParameter访问请求参数,您可以使用getHeader检索标头值,因此可以在请求时定义CategoryViewResolveModel。
https://stackoverflow.com/questions/35034216
复制相似问题