我正在尝试在某些字段上验证失败时显示一般错误消息,并在其他字段失败时显示更具体的消息。但是,我还没有找到一种方法来检查其密钥是否存在多个错误。
我知道我可以使用#{ifError 'key'}
检查单个错误,我可以使用#{ifErrors}
检查多个错误,但如何检查多个错误密钥,例如#{if (error 'keyA' || error 'keyB')}
?多个if语句不起作用,因为如果存在某些错误,我希望只显示一次通用消息。
我正在尝试做的事情显示在下面的代码段中:
<!-- Only if there's an error on the 'specific' field will this div
be populated. -->
<div class="specificError">#{error 'specific' /}</div>
<!-- If there are other errors, display a generic error message.
This if statement won't compile but shows what I want to do. -->
#{if (error 'fieldA' || error 'fieldB')}
<div class="genericValidateError">&{'error.validation'}</div>
#{/if}
欢迎所有建议,包括提出替代验证方法的建议。
答案 0 :(得分:3)
您可以访问验证对象以直接检查字段,如下所示
#{if play.data.validation.Validation.current().hasError("fieldA") ||
play.data.validation.Validation.current().hasError("fieldB") }
<div class="genericValidateError">&{'error.validation'}</div>
#{/if}
答案 1 :(得分:0)
也许最好的方法是创建自己的FastTag。至少我认为它是一个更好的选择(在不同的视图中易于测试和重用)。您可以在此处查看如何创建自己的快速标记:custom java tags。