【发布时间】:2015-03-10 23:06:12
【问题描述】:
我有一个使用 Jackson 和 Bean 验证的 RESTeasy 应用程序。 POJO 可能看起来像这样:
public class Foo {
@Size(min = 2)
private String bar;
}
如果客户端发送 bar 属性,则验证 Bar。并且预期:如果客户端不发送属性,则不会验证任何内容。
如果客户端发送一个空字符串,我会得到一个约束违规。这可能是正确的,但很难控制空输入字段的值到底是什么。例如,在我的角度应用程序中,如果用户没有输入任何内容,则该字段将不存在。一旦他输入并删除了一些东西,我就会有一个空字符串。
我以为我可以通过 DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT 配置 Jacksons 的行为,但作为 answered here 这仅适用于 POJO,不适用于字符串。我看到的唯一方法是不使用@Size 或为字符串编写自己的反序列化器。两者似乎都不是好的解决方案。还有其他想法吗?
【问题讨论】:
标签: jackson resteasy bean-validation