0

文字列に変換できるコンバーターを書くことは可能String[]ですか?

<p:selectManyCheckbox value="#{bean.numbers}" > 
  <f:selectItem itemValue="Number10" itemLabel="Number 10" />
  <f:selectItem itemValue="Number20" itemLabel="Number 20" />
  <f:selectItem itemValue="Number30" itemLabel="Number 30" />
  <f:converter converterId="arrayStringConverter"/>
</p:selectManyCheckbox>

#{bean.numbers}String として宣言する必要があります。selectManyCheckboxArray または Collection が必要であることはわかっています。

配列を分離された文字列に変換できるコンバーターを作成するにはどうすればよいですか? f:converter を使用してみましたがf:selectItem、コンポーネント値全体ではなく、すべてに対して呼び出されます。

4

1 に答える 1

1

JSF コンバーターは、期待どおりにコレクション/配列全体に一度ではなく、個々のアイテムごとに繰り返し適用されます。いいえ、それは不可能です。このようにモデルを改ざんする必要がある場合は、後でビジネス レイヤーで変換ジョブを実行するだけです。

(あなたが実際にやろうとしていることを正しく推測している場合は、複数の値をカンマ区切りで単一の DB 列に格納します。DB の正規化、外部キーの関係、および JOIN について読み始めてください)

于 2013-07-11T16:25:01.167 に答える