繁体   English   中英

弹簧和JSR303

[英]Spring and JSR303

我需要验证来自供应商的XML并将其另存为oracle中的XML类型。

现在,我需要一个过程来触发验证引擎...这将对其进行验证,并将指标中的值保存为“是”或“否”。例如,如果我们的dB中不存在XML中的地址,则使该地址成为指标为“否”(我们将在另一个过程中对此进行纠正...)

我已经在Spring 303中使用了JSR303,它非常有效并且易于使用....但是它使用了表单支持对象和@valid .....

我可以在设计中使用它吗?

或者让我这样说-

Spring的JSR-303实现是否可以验证不是来自表单输入的对象字段?

我知道这是一个非常模糊的问题...所以请让我知道是否需要进一步说明

对象验证的大部分工作由JSR-303提供程序(大多数情况下为休眠验证器)执行。 Spring在此过程中的作用很小-它只是解析用户的数据,将其绑定到该对象,然后将该对象传递给验证器。 另外,在应用程序启动期间,Spring会创建Validator实例。

因此,您可以干预此过程:创建要手动验证的对象,手动获取Validator实例并将对象传递给他。 结果,您将获得一Set ConstraintViolation ,它代表每个字段的错误。

在此方案中,主要问题是JSR-303验证程序与对象一起工作,而您对XML文档进行操作。 您可以将XML文档反序列化为对象,进行验证,如果没有错误,则将其序列化回XML并写入DB。

我建议阅读Hibernate Validator手册的以下部分: 2.2。 验证约束它描述了Validator接口和一些有用的方法: validate()validateProperty()validateValue()

Spring的一个好处是,您不需要使用Validation.buildDefaultValidatorFactory().getValidator()自己创建Validator :与其他所有Spring Bean一样,只需@Autowire

@Autowired
private Validator validator;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM