2011-08-04 8 views
1

私のJSFページでは、<rich:autocomplete/>があります。これはリストからオブジェクトを選択して入力する必要があります。オブジェクトのidには意味がありませんので、Converterと書いて読みやすい文字列に変更しなければなりません。プロパティが一意に識別されない場合のJSFコンバーターの使い方

残念ながら、オブジェクトの文字列表現は異なるオブジェクトを一意に識別できないため、変換は元に戻せません。今私はこの問題をどのように解決できるか知りたいですか?選択したオブジェクトのid<h:inputHidden>に格納して、ビュースコープのバッキングBeanに渡すことはできますか?

答えて

1

入力コンポーネントとコンバータを間違った方法で使用しています。オブジェクトの一意の識別子(項目値)を入力値として使用している間は、明らかにオブジェクトの文字列表現(項目ラベル)を入力値として使用しています。コンバーターは、カスタムオブジェクトと文字列表現の間ではなく、カスタムオブジェクトと一意の識別子の間で変換するだけです。

+0

お返事に感謝しますが、私が使用しています言ったように私は、理解していない。<:selectOneMenu/H>のようにitemValueとITEMLABELのためにサポートしていません<豊富なオートコンプリート/>(バージョン4)の成分を。一方、私はユーザーに非ユニークなプロパティを表示する必要があります、どのように私はこの目標を達成することができますか? – arash

0

私はこれを検索しましたし、今までの豊富なことではありません直接的な解決策はありません:それは豊かなようitemValueを持っていないとして、コンポーネントは:

を選択する。また2の回避策のソリューションがあります。

  1. 隠しフィールドに、選択した項目のid値を追加して 選択した項目

  2. を識別するために、この隠しフィールドを使うためにJavaScriptを使用するために、私はITEM_IDをCONCATするfetchValue属性を使用 - item_name
    次に、選択した項目を と識別するitem_idの部分文字列を作成したコンバータを作成しました。

関連する問題