java Hibernate验证程序。如何使用@Valid注释?
当把@Valid
注释放在方法参数级别时,它的用途是什么
public void (@Valid Person p) { ... }
我创建了一个测试,并将无效对象传递给该方法,但什么也没发生
我希望得到一个例外
你可以在下面搜索框中键入要查询的问题!
当把@Valid
注释放在方法参数级别时,它的用途是什么
public void (@Valid Person p) { ... }
我创建了一个测试,并将无效对象传递给该方法,但什么也没发生
我希望得到一个例外
# 1 楼答案
其目的是根据定义的约束验证对象
从Hibernate Docs
这可能会有帮助http://www.mkyong.com/spring-mvc/spring-3-mvc-and-jsr303-valid-example/
# 2 楼答案
对象上的@
Valid
注释是验证框架处理注释对象的指示。当用于方法的参数时,这被称为方法级验证。请注意,方法级验证不是核心规范的一部分,事实上,只有当Bean验证集成到容器类型框架(JSF、CDI、JavaEE)中时,才支持方法级验证。当Bean验证集成到这样一个支持容器中时,发生的事情是,在Bean上调用生命周期方法时,容器会检测方法参数上的JSR 303注释,并触发相关Bean的验证例如,如果在JAX-RS资源类中有以下方法定义:
当调用
postExample
方法以响应JAX-RS容器处理的请求时,将验证example
bean。将此行为与运行独立Java SE应用程序时发生的情况进行对比:在这种情况下,即使包含了所有JSR303运行时JAR,运行该程序也不会触发
Example
参数的验证。这是因为没有实现方法级验证的容器可用。附录C中的Bean Validation Specification详细描述了所有这些。为了您的利益,我在下面引用了其中的一些内容: