|
||||||||
| 前のページ 1 2 | ||||||||
| カスタムコンバータクラスの作成 | ||||||||
|
まず、javax.faces.convert.Converterをimplementsしてコンバータクラスを作成します。カスタムコンバータクラスを作成する際のポイントは、次のとおりです。 |
||||||||
| 1. getAsObject()メソッド | ||||||||
|
画面から入力された文字列(String)をオブジェクトに変換します。本連載のサンプルの場合、画面から入力されたCSV文字列をArrayListに変換します。変換に失敗した場合は、ConverterExceptionをスローします。サンプルでは、カンマが1つもない場合は例外を投げる仕様にしてあります。 |
||||||||
| 2. getAsString()メソッド | ||||||||
|
オブジェクトを画面から入力された文字列(String)に変換します。本連載のサンプルの場合、リストの要素をCSV文字列に戻します。 カスタムコンバータ(CSV2ListConverter.java)のソースをリスト1に示します。 リスト1:CSV2ListConverter.java(抜粋) |
||||||||
| JSF設定ファイルへの登録 | ||||||||
|
次に、作成したコンバータをJSF設定ファイル(faces-config.xml)に登録します(リスト2)。<converter-id>要素には、<f:converter>タグのconverterId属性の値と同じものを設定します。<converter-class>要素には、コンバータのクラス名を設定します。 リスト2:faces-config.xml(抜粋) |
||||||||
| JSPファイルへのタグの記述 | ||||||||
|
JSPファイル(custom_converter.jsp)にタグを記述します(リスト3)。 リスト3:custom_converter.jsp(抜粋) <f:converter>タグのconverterId属性には、リスト2に示したJSF設定ファイルのconverter-id要素の値と同じものを指定します。 |
||||||||
| 変換後オブジェクトのマネージドBeanへの格納 | ||||||||
|
リスト4ではCSV文字列から変換したリストを格納するマネージドBeanとしてjava.util.ArrayListを登録しています。このようにマネージドBeanとしてjava.util.ArrayListのような標準APIのクラスも指定することができます。 リスト4:faces-config.xml(抜粋)
<managed-bean>
|
||||||||
| 結果画面 | ||||||||
|
JSPの記述をリスト5に示します。 リスト5:コンバータ結果画面JSP(抜粋)
<f:view>
#{listBean}というバインディング式でリストを参照し、リスト内の要素を<h:dateTable>コンポーネントを使用して画面に表示しています。 |
||||||||
|
前のページ 1 2 |
||||||||
|
|
||||||||
|
|
||||||||
|
||||||||
|
|
||||||||
|
||||||||



