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,在列表中预选 de 值。

提前致谢 !!

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 回答