1

この事前選択された autoCompleteBean.selectedPlayer1 は機能しません!!

これは、primefaces サイトのショーケースから抽出された例です: https://www.primefaces.org/showcase/ui/input/oneMenu.xhtml

<p:selectOneMenu value="#{autoCompleteBean.selectedPlayer1}" converter="player"> 
    <f:selectItems value="#{autoCompleteBean.players}" var="player" 
                   itemLabel="#{player.name}" itemValue="#{player}"/>
</p:selectOneMenu>

Bean に、次の行を入れます。

private Player selectedPlayer1;
private List players;

/* AutoCompleteBean - constructor */ 

public AutoCompleteBean() {

players = new ArrayList<Player>();

players.add(new Player("Messi", 10, "messi.jpg", "CF"));
players.add(new Player("Bojan", 9, "bojan.jpg", "CF"));

selectedPlayer1 = players.get(1);
}

変数 autoCompleteBean.selectedPlayer1 には、jsp を開く前に指定した値が含まれています。ただし、これは事前に選択されていません。arraylist の最初の要素のみが常に選択されて表示されます。どうして ??

p:selectOneMenu, preselect de value in the list が必要なのは私だけです。

前もって感謝します !!

4

2 に答える 2

0

実際、値を事前に選択できます。つまり、次のようにしてデフォルトで値を選択できます。

<p:selectOneMenu value="#{autoCompleteBean.selectedPlayer1}" effect="fade" converter="player">  
    <f:selectItem itemLabel="autoCompleteBean.selectedPlayer1.name" itemValue="autoCompleteBean.selectedPlayer1" />  
    <f:selectItems value="#{autoCompleteBean.players}" var="player" itemLabel="#{player.name}" itemValue="#{player}"/>  
</p:selectOneMenu>  

これに関する唯一の問題は、デフォルトで選択された値が次のように繰り返されることです。

ここに画像の説明を入力

そして、あなたは次のようなものが欲しいと思います:

ここに画像の説明を入力

したがって、この問題については、配列プレーヤーを使用することをお勧めします。

itemValue="#{player}" 

ただし、この配列から事前に選択されたオプションを削除します

于 2012-12-04T16:15:33.983 に答える
0

プレーヤー クラスに hashCode() および equals() 関数がありますか?

それらが欠落している場合、primefaces はそれらの間の違いを作ることができません。

同様の問題: Primefaces selectOneMenu が動作するはずのときに動作しない

于 2013-03-18T15:40:26.497 に答える