JSFで複数ボタンでの Validator問題
2009/09/02 17:58Update
JSFで複数ボタンでの Validator問題について解析します。
JSF Validatorの使い方について
――――――――――――――――――――――
JSF Validator入門 - 標準Validator及びその使い方
――――――――――――――――――――――
例えば、
計算ボタンを押すと、「価格」に設定したf:validateDoubleRangeが行われます。
これは一見では何の問題もありません。
しかし、
<h:commandButton value="計算" .. />では、何の入力項目のバリデーションが行われるべきかを指定することができないため、
同じフォームの場合、
1)設定したすべてのValidatorが実行されますので、ボタン別に実行したいValidatorを指定できません。
例えば、Aボタンの場合、a項目のバリデーションを行い、Bボタンではb項目のバリデーションを行うことが指定できません。
2)バリデーション処理を行いたくないボタンでもValidatorが実行されてしまいます。
例えば、「戻る」ボタンの場合、当然バリデーションを行う必要がありません。
1)残念ながら、同じフォームにボタン別に実行されるValidatorを指定できません。
2)h:commandButtonにimmediate="true"をつけることで、バリデーションを行わなくなります。
例:
<h:commandButton value="戻る" immediate="true" />
※記憶によりますと、immediate="true"が指定されると、入力項目のコミット値がmanaged-beanにセットされないようです。
――――――――――――――――――――――
JSF Validator入門 - 標準Validator及びその使い方
――――――――――――――――――――――
問題
例えば、
価格:
<h:inputText id="value" value="#{mybean.value}">
<f:validateDoubleRange maximum="5"></f:validateDoubleRange>
</h:inputText>
<h:message for="value"></h:message>
<h:commandButton value="計算" .. />
計算ボタンを押すと、「価格」に設定したf:validateDoubleRangeが行われます。
これは一見では何の問題もありません。
しかし、
<h:commandButton value="計算" .. />では、何の入力項目のバリデーションが行われるべきかを指定することができないため、
同じフォームの場合、
1)設定したすべてのValidatorが実行されますので、ボタン別に実行したいValidatorを指定できません。
例えば、Aボタンの場合、a項目のバリデーションを行い、Bボタンではb項目のバリデーションを行うことが指定できません。
2)バリデーション処理を行いたくないボタンでもValidatorが実行されてしまいます。
例えば、「戻る」ボタンの場合、当然バリデーションを行う必要がありません。
解決策
1)残念ながら、同じフォームにボタン別に実行されるValidatorを指定できません。
2)h:commandButtonにimmediate="true"をつけることで、バリデーションを行わなくなります。
例:
<h:commandButton value="戻る" immediate="true" />
※記憶によりますと、immediate="true"が指定されると、入力項目のコミット値がmanaged-beanにセットされないようです。
Sponsored Link
- Relative Articles
- JSFプロジェクト階層構造例 - (2009/06/20 16:39)
- JSFのインストール - 初めてのJSFアプリ作成・実行 - (2009/06/23 16:24)
- ライフサイクルから理解するJSFの仕組み - (2009/06/24 17:43)
- JSF開発におけるweb.xmlの基本的な設定方法 - (2009/03/13 18:13)
- JSF Webページ(JSP)の基本的な書き方 - (2009/03/16 11:58)
- JSF Managed-Beanの定義・設定・使い方 - (2009/03/16 14:48)
- JSF メッセージ処理 概要 - (2009/06/20 20:01)
- JSF Validator入門 - 標準Validator及びその使い方 - (2009/06/22 18:26)
- JSF Converter入門 - 標準Converter及びその使い方 - (2009/06/23 17:17)
- JSF画面遷移 - (2009/06/24 18:08)