跨领域验证JSR303

时间:2014-09-11 12:50:25

标签: hibernate validation spring-webflow bean-validation apache-commons-beanutils

这是对下面提出的问题的继续:

Cross field validation with Hibernate Validator (JSR 303)

我是JSR 303的新手,我的要求是 - 在我的页面中(我使用Spring WebFlow创建调查)我有两个文本字段说Amount1和Amount2,如果Amount2小于Amount1那么我需要在Amount2字段下方显示验证错误消息(Amount2不能小于Amount1)。使用上面给出的答案,我可以在页面顶部看到此消息,但不在字段下方。

什么有效:

@Amount(amount1= "amount1", amount2= "amount2")
public class SurveyBean extends ModelContextBean implements Serializable{

什么不起作用:

public class SurveyBean extends ModelContextBean implements Serializable{
@Amount(amount1= "amount1", amount2= "amount2")
private String getAmount2(){}

有谁可以帮我解决如何在现场级别应用跨领域验证......

提前致谢

1 个答案:

答案 0 :(得分:0)

这实际上不是Bean Validation或Hibernate Validator问题。问题出在UI中。我不知道Spring WebFlow中的映射如何从约束错误到字段工作,但我希望有一种方法可以自定义它。从Bean Validation的角度来看,比较同一个bean的两个字段的唯一方法是使用自定义类级别约束。没有其他办法。这里的问题是错误消息自动映射到字段。更多地考虑它,将消息放在顶部似乎现在似乎发生,对Spring Web Flow来说是有意义的。毕竟它是一个类级约束,它不知道它适用于哪个字段。