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

yone@abby.co.jp yone
2005年 7月 14日 (木) 01:30:15 JST


米林です


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

S2JSFについてですよね?

例えば ActionにDtoをセットし、Action内でDtoの該当プロパティに
エラーメッセージを設定してみては如何でしょうか?

Action内で
if(なんらかのエラー){
    loginInfoDto.setErrMsg("なんらかのエラーです");
}

html内でエラーを表示したい箇所に
<span m:value="#{loginInfoDto.errMsg}"/>



>
> 以下のような 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 メーリングリストの案内