[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 メーリングリストの案内