8

我使用 JAXB(maven-jaxb2-plugin)从模式(请求和响应)生成域对象
我想为几个属性添加验证(notnull /empty)。我想要自定义 Bean 验证,该应用程序是一个 REST 服务,我使用的是 Spring 3 和 JSR 303,但我认为我不能使用 JSR 303 来验证从模式生成的对象。

有人可以在正确的方向上推动我如何完成这项工作。

4

4 回答 4

4

我们一直在使用Krasa JAXB 插件从 XSD 文件生成带有 JSR 303 注释的模型 bean,然后告诉 Spring自动验证输入 bean。如果你有好的 XSD,这会产生非常好的、非常简洁、非常 DRY 的代码。

于 2013-03-19T01:58:43.177 回答
2

实际上,您可以通过 jsr-303 xml 配置来执行此操作。例如,参见http://www.aviyehuda.com/2010/04/using-hibernate-validator-to-cover-your-validation-needs/

于 2012-02-10T01:37:03.177 回答
0

您在正确的路径上生成 JAXB。单击此处查看 JSR 303 如何与 POC 配合使用

于 2014-12-16T21:05:22.013 回答
0

对于 NotNull/Empty 验证,您可以在模式中使用 jaxb 限制

这是一个例子:

<xsd:simpleType name="NotEmptyString">
  <xsd:restriction base="xsd:string">
    <xsd:minLength  value="1"/>
  </xsd:restriction>
</xsd:simpleType>

或者您可以使用正则表达式模式:

<xsd:simpleType name="DirType">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="[LR]*"/>
  </xsd:restriction>
</xsd:simpleType>

注意:简单类型不保证自己的类定义。使用 Java 自己的 java.lang.String,除非您通过setEventHandler()请求,否则不会检查长度限制。

更多信息http://jaxb.java.net/tutorial/section_3_3-Validation.html#Validation

于 2011-05-03T08:44:39.730 回答