JSF Converter入門 - 標準Converter及びその使い方

2009/06/23 17:17更新
TAGS: JSF | Converter | 変換 | コンバータ | コンバート | 入力 | 出力

JSFでは、コンバータ(converter)という ユーザ入力/出力 値に対してコンバート(変換)を行うための仕組みを提供しています。標準Converterのほか、カスタムConverterの作成もサポートします。

本文はJSF Converterの概要や標準Converter、及びその使い方について解説します。

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を指定します。

著者について
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


コメント