Play Framework 1.2.4:检查是否存在特定错误

时间:2011-12-19 18:55:43

标签: validation playframework

我正在尝试在某些字段上验证失败时显示一般错误消息,并在其他字段失败时显示更具体的消息。但是,我还没有找到一种方法来检查其密钥是否存在多个错误。

我知道我可以使用#{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}

欢迎所有建议,包括提出替代验证方法的建议。

2 个答案:

答案 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