2011-12-19 13 views
1

特定のフィールドで検証が失敗した場合は一般的なエラーメッセージを表示しようとしています。しかし、キーで複数のエラーが存在するかどうかを確認する方法を見つけることはできませんでした。Play Framework 1.2.4:特定のエラーの存在の確認

#{ifError 'key'}で1つのエラーを確認できますが、#{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} 

すべての提案は、代替の検証方法を提案するものを含めて、歓迎されています。

答えて

3

あなたは

#{if play.data.validation.Validation.current().hasError("fieldA") || 
    play.data.validation.Validation.current().hasError("fieldB") } 

    <div class="genericValidateError">&{'error.validation'}</div> 
#{/if} 
+0

ドキュメントの例は見つかりませんでしたが、あなたの提案はそのトリックでした。ありがとう! –

0

は多分それを行うための最善の方法は、あなた自身のFastTagを作成して従うよう直接フィールドをチェックする検証オブジェクトにアクセスすることができます。少なくとも、私はそれがより良い選択肢だと思います(さまざまなビューでテストして再利用するのは簡単です)。ここに独自のファストタグを作成する方法を見ることができます:custom java tags

関連する問題