我在我的 JSF 项目中使用 Bean Validation。现在我遇到了一种情况,我想仅在验证前面的方法时才验证方法。
我举个例子:
@AssertTrue(message="{invalidCode}")
private boolean isValidActivationCode() { ... }
if(isValidActivationCode()) {
@AssertTrue(message="{alreadyActivated}")
private boolean isAlreadyActivated() { ... }
}
由于我将收到每个参数的激活码,我想先验证它。如果无效,则会导致违规。如果是这样,我什至无法检查它是否已经激活(因为代码无效)。那么,是否有可能实现上面提到的任何事情(if 语句的功能,我知道这是行不通的,但它显示了我想要完成的事情)。
提前致谢
更新
Ravi K 提到的解决方法:
@AssertTrue(message="{invalidCode}")
private boolean isValidActivationCode() { ... }
@AssertTrue(message="{alreadyActivated}")
private boolean isAlreadyActivated() { return isValidActivationCode() ? ... : true; }
虽然我想知道,有没有一种干净的方法来解决这个问题?如果没有人很快提供答案,我会假设没有干净的解决方案,我会接受 Ravi K 的解决方法作为这个问题的答案。