[Seasar-user:2354] action からのエラーメッセージの表示について教えてください。

O.K.U. oku
2005年 7月 14日 (木) 00:46:05 JST


はじめまして、O.K.U.と申します。よろしくお願いします。
早速ですがエラーメッセージの表示について教えてください。

m:required="true" や、自作の validator を使った入力チェックでNGと
判定できた場合のエラーの表示のやり方は分かったのですが、
その後の action に入ってから、はじめて入力エラーが判定できた場合には、
どのようにしてエラーを表示すればよろしいのでしょうか?

以下のような form を例に説明すると、入力がなかった場合や、
loginNameValidator や passwordValidator の中でのチェックで
エラーが判定できた場合には、それぞれ対応する h:message の
ところにエラーメッセージを表示することができますが、
loginAction.login に入ってしまった後で、入力が間違いだったと
判定できた場合には、どのようにすれば入力画面にエラーを
表示することができるのでしょうか?

尚、実際には1画面に複数の form が存在するので、
h:messages を使って一箇所に全部のメッセージを表示するといった
方法は使いたくないです。やはり該当する入力の近くにエラーを
表示するのが親切だと思いますので。

actionプログラム上で idを指定して、狙った位置にエラーが表示
できればいいのだと思うのですが、html に書いた id は書き換えられてしまうので、 

action プログラム中で書き換えられてしまった id をどうすれば取得できるのかも分かりません。
また仮に id が分かったとしても、どのようにメッセージを送って表示するのかも
分かりません。もっと別の方法があるのでしょうか?

以上、はじめての投稿で長々と書いてしまいましたが、ご教授のほど
よろしくお願いします。

<form>
  ログイン名
  <input id="ログイン名" type="text" m:value="#{loginInfoDto.loginName}" 
m:required="true" >
    <span m:inject="s:validator" m:binding="#{loginNameValidator}" />
  </input>
  <span m:inject="h:message" m:for="ログイン名" />
  パスワード
  <input id="パスワード" type="password" m:value="#{loginInfoDto.password}" 
m:required="true">
     <span m:inject="s:validator" m:binding="#{passwordValidator}" />
  </input>
  <span m:inject="h:message" m:for="パスワード" />
  <input type="submit" m:action="#{loginAction.login}" value="ログイン" />
</form> 





Seasar-user メーリングリストの案内