【发布时间】:2016-04-04 18:52:43
【问题描述】:
Spring 从 4.1 版开始支持 @JsonView。
使用具有多个标识符的 @JsonView 注释 Spring 控制器的(使用 @RestController 注释)方法我得到以下异常:
java.lang.IllegalArgumentException: @JsonView only supported for request body advice with exactly 1 class argument: org.springframework.web.method.HandlerMethod$HandlerMethodParameter@a566e37e
显然根据JsonViewResponseBodyAdvice的Javadoc,以下是正确的:
请注意,尽管@JsonView 允许多个类 指定,仅支持使用响应正文建议 正是一个类论点。考虑使用复合接口。
同样,在注释控制器的方法参数(使用@RequestBody 注释)时,也使用具有多个标识符的@JsonView;根据JsonViewRequestBodyAdvice的Javadoc:
请注意,尽管 @JsonView 允许多个类 指定,请求正文建议的使用仅支持 正是一个类论点。考虑使用复合接口。
有人知道是否计划进行修复吗?我当前的 Spring 版本是 4.2.4。
这将非常有用为公共、私有(扩展公共)、摘要和详细(扩展摘要)视图创建 json 视图,然后将它们组合到控制器方法中!
【问题讨论】:
标签: spring spring-mvc jackson