コードリスト¶Caution本バージョンの内容は既に古くなっています。最新のガイドラインはこちらからご参照ください。Overview¶コードリストとは、「コード値(value)とその表示名(label)」の集合である。画面のセレクトボックスなどコード値を画面で表示する際のラベルへのマッピング表として利用される。共通ライブラリでは、xmlファイルやDBに定義されたコードリストをアプリケーション起動時に読み込みキャッシュする機能JSPやJavaクラスからコードリストを参照する機能コードリストを用いて入力チェックする機能を提供している。応用的な使い方として、コードリストの国際化対応キャッシュされたコードリストのリロードもサポートしている。Note標準でリロードが可能なのは、DBに定義されたコードリストを使用する場合のみである。共通ライブラリでは、以下4種類のコードリスト実装を提供している。xmlファイルに直接記述した内容を使用する。数値の範囲のリストを作成する際に使用する。DBから対象のコードをSQLで取得して使用する。Enumクラスに定義した定数からコードリストを作成する際に使用する。java.util.Localeに応じたコードリストを使用する。共通ライブラリで提供しているコードリストのクラス図構成を以下に示す。本項では、各種コードリストを使用する上での設定や実装方法を記述する。xmlファイルに定義したコード値をアプリケーション起動時に読み込み、そのまま使用するコードリストである。コードリスト設定例¶bean定義ファイル(xxx-codelist.xml)の定義bean定義ファイルは、コードリスト用に作成することを推奨する。説明(1)SimpleMapCodeListクラスをbean定義する。IDパターンに合致する名称にすること。Key、Valueを定義する。登録されるため、上記例では、「名前と値」が、登録順にMapへ保持される。bean定義ファイル(xxx-domain.xml)の定義コードリスト用bean定義ファイルを作成後、既存bean定義ファイルにimportを行う必要がある。説明(3)コードリスト用bean定義ファイルをimportする。上で設定する必要がある。リクエストスコープに自動的に設定し、JSPからコードリストを容易に参照できる。説明(1)適用対象のパスを設定する。クラスをbean定義する。(3)自動でリクエストスコープに設定するコードリストのbeanIDのパターンを設定する。使用する正規表現を設定すること。上記例では、idが”CL_XXX”形式で定義されているデータのみを対象とする。その場合、idが”CL_”で始まらないbean定義は取り込まれない。“CL_”で定義したbeanIDは、リクエストスコープに設定されるため、JSPで使用可能となる。codeListIdPatternプロパティは省略可能である。codeListIdPatternを省略した場合は、すべてのコードリスト(org.terasoluna.gfw.common.codelist.CodeListインタフェースを実装しているbean)がJSPで使用可能となる。説明(4)セレクトボックスの先頭にダミーの値を設定する場合、valueに空文字を指定すること。(5)コードリストを定義したbeanIDを指定する。アノテーションを設定してコードリストをインジェクションする。コードリスト名を指定する。説明(1)beanIDが、”CL_ORDERSTATUS”であるコードリストをインジェクションする。アプリケーション起動時に、指定した数値の範囲をリストにするコードリストである。数だけのセレクトボックス、月や日付などのセレクトボックスに使用することを想定している。NumberRangeCodeListのイメージTipNumberRangeCodeListはアラビア数字のみ対応しており、漢数字やローマ数字には対応していない。漢数字やローマ数字を表示したい場合はJdbcCodeList、SimpleMapCodeListに定義することで対応可能である。NumberRangeCodeListには、以下の特徴がある。Fromの値をToの値より小さくする場合、昇順にinterval分増加した値をFrom~Toの範囲分リストにする。Toの値をFromの値より小さくする場合、降順にinterval分減少した値をTo~Fromの範囲分リストにする。増加分(減少分)はintervalを設定することで変更できる。ここでは、昇順のNumberRangeCodeListについて説明をする。降順のNumberRangeCodeListとインターバルの変更方法については、「NumberRangeCodeListのバリエーション」を参照されたい。To)場合の実装例を、以下に示す。説明(1)NumberRangeCodeListをbean定義する。(2)範囲開始の値を指定する。省略した場合、”0”が設定される。(3)範囲終了の値を設定する。(4)コード値のフォーマット形式を設定する。省略した場合、”%s”が設定される。(5)コード名のフォーマット形式を設定する。省略した場合、”%s”が設定される。(6)増加する値を設定する。省略した場合、”1”が設定される。