使用Jackson @JsonView和@Valid

时间:2016-10-28 02:10:28

标签: java spring spring-mvc jackson bean-validation

我有一个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(如您所料),但仍然得到验证和拒绝。

有没有办法让我的工作像我希望的那样,或者更容易实现这一点,我完全错过了?

0 个答案:

没有答案