我想比较两个密码是否匹配,我可以使用一个字段和@AssertTrue
进行匹配,但是如果验证失败,则无法显示该消息。
我正在尝试:
@Transient
@NotNull(message = "Passwords must match")
private String passFlag = null;
@AssertTrue
private boolean isValid() {
if (password.equals(confirmPassword)) {
passFlag = "a string";
return true;
}
return false;
}
<span class="error" th:if="${#fields.hasErrors('passFlag')}" th:errors="*{passFlag}"></span>
使用断点,我可以看到所有值都按预期正确,但是即使密码匹配,我也总是得到错误消息。
即使passFlag
为true,看来@AssertTrue
也不会更改其值以进行验证(因为当我使用断点查看值时,我可以看到passFlag
具有正确的值值,但我仍然收到错误消息)。
那么我该如何修改上面的代码以处理错误消息,甚至更好-可以比较两个字段并在需要时显示错误消息吗?