JSF Converter入門 - 標準Converter及びその使い方
2009/06/23 17:17更新
JSFでは、コンバータ(converter)という ユーザ入力/出力 値に対してコンバート(変換)を行うための仕組みを提供しています。標準Converterのほか、カスタムConverterの作成もサポートします。
本文はJSF Converterの概要や標準Converter、及びその使い方について解説します。
◇ 入力変換。フォームサブミット後入力値に対して変換を行います。例えば、入力値をDate型に変換したい場合。
◇ 出力変換。画面表示前に出力値に対して変換を行います。例えば、Date型の値をyy/MM/dd(曜日)などの形式で表示したい場合。
コンポーネントのvalueが有効な場合のみConverterで値の変換を行います。
1、UIInput(入力)コンポーネント:
1)immediate属性はtrueの場合(<h:commandButton immediate="true" .../>):[Apply Request Values Phase:リクエスト値の適用フェーズ]に変換を行います。
2)immediate属性はfalseの場合:[Process Validations Phase:バリデーション実行フェーズ] に変換を行います。
2、UIOutput(出力)コンポーネント:
1)[Render Response Phase:レスポンス出力フェーズ]に変換を行います。
■一覧
<f:converter converterId="ConverterId"></f:converter>
<f:convertDateTime></f:convertDateTime>
<f:convertNumber></f:convertNumber>
■使い方例:
※converterId属性にconverterのIDを指定します。
また、
■一覧
<h:inputHidden converter="ConverterId"></h:inputHidden>
<h:inputSecret converter=""></h:inputSecret>
<h:inputText converter=""></h:inputText>
<h:inputTextarea converter=""></h:inputTextarea>
<h:outputFormat converter=""></h:outputFormat>
<h:outputLabel converter=""></h:outputLabel>
<h:outputLink converter=""></h:outputLink>
<h:outputText converter=""></h:outputText>
<h:selectBooleanCheckbox converter=""></h:selectBooleanCheckbox>
<h:selectManyCheckbox converter=""></h:selectManyCheckbox>
<h:selectManyListbox converter=""></h:selectManyListbox>
<h:selectManyMenu converter=""></h:selectManyMenu>
<h:selectOneListbox converter=""></h:selectOneListbox>
<h:selectOneMenu converter=""></h:selectOneMenu>
<h:selectOneRadio converter=""></h:selectOneRadio>
■使い方例:
※converter属性にconverterのIDを指定します。
JSFのConverter機能
◇ 入力変換。フォームサブミット後入力値に対して変換を行います。例えば、入力値をDate型に変換したい場合。
◇ 出力変換。画面表示前に出力値に対して変換を行います。例えば、Date型の値をyy/MM/dd(曜日)などの形式で表示したい場合。
ライフサイクルにおけるConverter動作タイミング
コンポーネントのvalueが有効な場合のみConverterで値の変換を行います。
1、UIInput(入力)コンポーネント:
1)immediate属性はtrueの場合(<h:commandButton immediate="true" .../>):[Apply Request Values Phase:リクエスト値の適用フェーズ]に変換を行います。
2)immediate属性はfalseの場合:[Process Validations Phase:バリデーション実行フェーズ] に変換を行います。
2、UIOutput(出力)コンポーネント:
1)[Render Response Phase:レスポンス出力フェーズ]に変換を行います。
JSF 標準Converter実装
| Converter Id | Class |
|---|---|
| javax.faces.BigDecimal | javax.faces.convert.BigDecimalConverter |
| javax.faces.Boolean | javax.faces.convert.BigIntegerConverter |
| javax.faces.BigDecimal | javax.faces.convert.BooleanConverter |
| javax.faces.Byte | javax.faces.convert.ByteConverter |
| javax.faces.Character | javax.faces.convert.CharacterConverter |
| javax.faces.DateTime | javax.faces.convert.DateTimeConverter |
| javax.faces.Double | javax.faces.convert.DoubleConverter |
| javax.faces.Float | javax.faces.convert.FloatConverter |
| javax.faces.Integer | javax.faces.convert.IntegerConverter |
| javax.faces.Long | javax.faces.convert.LongConverter |
| javax.faces.Number | javax.faces.convert.NumberConverter |
| javax.faces.Short | javax.faces.convert.ShortConverter |
JSF 標準Converterタグ
■一覧
<f:converter converterId="ConverterId"></f:converter>
<f:convertDateTime></f:convertDateTime>
<f:convertNumber></f:convertNumber>
■使い方例:
<h:inputText value="#{myBean.datetime}">
<f:converter converterId="javax.faces.DateTime"></f:converter>
</h:inputText>
※converterId属性にconverterのIDを指定します。
また、
<h:inputText value="#{myBean.datetime}">
<f:convertDateTime pattern="yyyyMMdd"/>
</h:inputText>
JSF 標準Converter属性
■一覧
<h:inputHidden converter="ConverterId"></h:inputHidden>
<h:inputSecret converter=""></h:inputSecret>
<h:inputText converter=""></h:inputText>
<h:inputTextarea converter=""></h:inputTextarea>
<h:outputFormat converter=""></h:outputFormat>
<h:outputLabel converter=""></h:outputLabel>
<h:outputLink converter=""></h:outputLink>
<h:outputText converter=""></h:outputText>
<h:selectBooleanCheckbox converter=""></h:selectBooleanCheckbox>
<h:selectManyCheckbox converter=""></h:selectManyCheckbox>
<h:selectManyListbox converter=""></h:selectManyListbox>
<h:selectManyMenu converter=""></h:selectManyMenu>
<h:selectOneListbox converter=""></h:selectOneListbox>
<h:selectOneMenu converter=""></h:selectOneMenu>
<h:selectOneRadio converter=""></h:selectOneRadio>
■使い方例:
<h:inputHidden converter="javax.faces.DateTime" value="#{myBean.datetime}" />
※converter属性にconverterのIDを指定します。
Sponsored Link
- 関連記事
- 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画面遷移 - (2009/06/24 18:08)
- JSFで複数ボタンでの Validator問題 - (2009/09/02 17:58)