[Seasar-user:16342] [Teeda]バリデーション時の表示制御について
Shinzo SAITO
[E-MAIL ADDRESS DELETED]
2008年 11月 20日 (木) 11:10:03 JST
齊藤新三と申します。
お世話になります。
現在、プロジェクトでTeedaを使用しています。
そこで、バリデーション時のエラー部分を表示する、しないの制御に関して少し困っております。知恵をお貸しください。
状況は以下のとおりです。
beforeHoge.html →(goHoge)→ hoge.html →(doInsert:ポストバック)→ hoge.html
のような画面遷移を考え、hoge.htmlでエラーを表記する部分に以下のような記載をしています。
<te:include te:src="/layout/errorDiv.html"/>
このerrorDiv.htmlには、以下のような記載をしてあります。
<html>
…省略…
<body>
<div id="isNotEmptyErrorMessage">
<div id="error_message">
<table id="error_table">
<tr><th>以下の内容をご確認ください。</th></tr>
<tr><td><span id="allMessages"/></td></tr>
</table>
</div>
</div>
</body>
</html>
このページに対応するErrorDivPageには、
public boolean isEmptyErrorMessage() {
FacesMessage[] messages = FacesMessageUtil.getAllMessages();
if(messages.length != 0) {
return false;
}
else {
return true;
}
}
のメソッドを用意します。
goHoge遷移(beforeHoge→hoge)ではこのエラー部分は表示されません。
次に、hoge.htmlでdoInsertでバリデーションを設定し、あえて入力ミスをします。その際、期待しているのは、hoge.htmlを再表示し、エラー部分にエラーメッセージが表記されることです。ところが、表記されません。一方で、入力ミスを犯したタグのclass属性はしっかりとonTeedaErrorとなっているので、バリデーションは働いています。
いろいろと実験をして見ますと、どうも、session内にセットされているemptyErrorMessageがgoHogeの段階でセットたれた後に上書きされません。
この値を随時書き換え、エラー部分を必要に応じて表示、非表示する方法はございますか。
どなたかお知恵をお貸しください。
以上、よろしくお願いします。
--
***********************
齊藤 新三
E-mail [E-MAIL ADDRESS DELETED]
***********************
Seasar-user メーリングリストの案内