我有一个POJO,我试图在2个不同的模块之间重用(并且将在不同的项目中由2种不同的控制器方法使用)。我正在尝试在控制器方法中对其应用特定的视图,以便字符串thing
将通过bean验证,如果它的作用域是特定的JsonView
:
public class TestPojo {
@JsonView(Views.TestView.class)
@NotNull(message = "can't be empty")
@JsonProperty
private String thing;
}
我的控制器方法如下:
@RequestMapping(value = "/api/test", method = POST)
public String test(@RequestBody @JsonView(Views.TestView.class) @Valid TestPojo request) {
// omitted
}
此验证正常,但如果我将上述@JsonView
更改为例如:
@JsonView(Views.OtherView.class)
我当时希望它不再验证变量thing
,因为它是不同视图的一部分。但实际上它已经解决了null
(如您所料),但仍然得到验证和拒绝。
有没有办法让我的工作像我希望的那样,或者更容易实现这一点,我完全错过了?