2017-03-04 9 views
1

pickListのdualListオブジェクトは、オブジェクトのロード時に空になります。Primfaces picklist dualListオブジェクトが空になる

これが使用されてdualListオブジェクトが正しく文字列

private List<String> queuesSouce = new ArrayList<>(); 
private List<String> queuesTarget = new ArrayList<>(); 
private DualListModel<String> dualListQueuesToBeAddedToTheApplication; 

リスト負荷の2つのリストで構成され、私は、オブジェクトを一の側、他を管理することができる午前れるピックリスト定義

<p:pickList id="queuesPickList" 
      value="#{manageApplications.dualListQueuesToBeAddedToTheApplication}" 
      var="queueToAdd" itemLabel="#{queueToAdd}" itemValue="#{queueToAdd}"> 
</p:pickList> 

です。 enter image description here

これまではすべてがうまく見えました。ソースオブジェクトとターゲットオブジェクトは正常にロードされ、選択リストは機能します。 dualListを作成した直後に、ソースのターゲットの内容をリストしています。両方ともそこにあります。

actionListenerを呼び出して行った変更を保存するには、下にボタンがあります。

<p:commandButton value="SAVE" id="saveQueuesButton" 
       actionListener="#{manageApplications.saveQueuesToTheApplication()}" 
       oncomplete="PF('dlgAddQueuesToApplication').hide();" 
       update="addQueuesToApplicationPanel"> 
</p:commandButton> 

ここでのactionListenerは、dualListオブジェクトからの値の出力だけです。

public void saveQueuesToTheApplication() {  
      System.out.println(this.dualListQueuesToBeAddedToTheApplication.getTarget()); 
    } 

今両方、.TARGET()と.souce()は空です。そこには にはゼロのオブジェクトがあります。 Primefacesドキュメントを読ん enter image description here

それはコンバータは、あなたと自分のタイプを扱うために必要であると述べています。私はpickListコンポーネントのネイティブオブジェクトであるプレーンなバニラリストを使用しているので、コンバータクラスを作成するのは面倒ではありませんでした。

私は間違っていますか?

よろしく、 Neliosam

答えて

0

コードで間違っは何もありませんでした。問題は範囲と関連していました。

pickListはモーダルダイアログウィンドウで使用されていましたが、何とか変更がdualListコンポーネントに反映されていませんでした。

Iは、ダイアログウィンドウから成分を除去し、モーダルダイアログウィンドウを使用する場合、私は制限されているまさに説明できない

レンダリング=#{booleanCondition}を使用して必要なときにのみレンダリングされることに追加しましたコンポーネントが変数を更新しないようにしていました。

これは誰か他の人が同じ問題に直面するのを助けてくれるでしょう!

+0

したがって、フォームの中にあるダイアログで選択リストがありましたか?そして、今は対話の外側ですが、まだ形になっていますか? –

+0

こんにちはJaquen;フォームはユニークで、テンプレートを使用してページを構築しています。 pickListは、最初はモーダルダイアログウィンドウに表示されていましたが、ダイアログウィンドウを使用すると制限があることが判明しました。私は、必要なときにのみレンダリングされるパネルの中に選択リストを置くようにコードを変更しました。 – Neliosam

+0

ダイアログの中にフォームがなく、最後にダイアログが表示されるので、私には聞こえますか?これを行う方法です –

関連する問題