Spring验证@AssertTrue

时间:2010-05-18 00:08:24

标签: spring spring-mvc spring-annotations

如何在@AssertTrue注释的结果上显示视图jsp验证错误消息?它不依赖于特定字段,但我使用它来验证字段组合。如果我使用<form:errors path="*"/>来显示该表单的所有错误?

3 个答案:

答案 0 :(得分:14)

根据我测试的内容,重要的是如何为测试功能命名。你应该正确地命名。

您不需要字段,getter或setter,但您的函数必须以'is *'语句开头。

FE。

@AssertTrue
public boolean isConditionTrue() {
   ...
   ...


}

@AssertTrue
public boolean isSomethingElseOk() {
   ...
   ...
}

但是,如果您需要使用带路径的错误表单,则需要字段和getter / setter,例如:

<form:errors path="someFieldToDisplay" />

但我认为这很明显。


我没有介入但可能有用的一些架构问题:

这也可能有用: lack of error messages

但是如果你使用没有版本标签的架构,它默认使用最新版本。

答案 1 :(得分:6)

声明一个布尔属性似乎对此有用。所以,如果有:

@AssertTrue
public boolean isConditionTrue() {
   ...
   ...
}

然后声明一个属性:

private boolean conditionTrue;

作品。

答案 2 :(得分:1)

你应该像这样命名你的财产:

@AssertTrue(message = "....")
private boolean conditionTrue; //***NOT isConditionTrue***

public boolean isConditionTrue() {
    return conditionTrue;
}

public void setConditionTrue(boolean conditionTrue) {
    this.conditionTrue= conditionTrue;
}

<form:errors path="*"/> or
<form:errors path="conditionTrue"/>