2012-12-03 42 views
1

此预选autoCompleteBean.selectedPlayer1不起作用!JSF/Primefaces 3.4.1/SelectOneMenu/Pojo/Pre选择pojo值不起作用

这是从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> 

在豆,我把这个线:

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之前指定。 但是,这不是预先选定的。只出现总是选择阵列列表的第一个元素 。为什么?

只有我需要p:selectOneMenu,在列表中预选de值。

在此先感谢!

+0

给一些代码。 – KSHiTiJ

+0

你可以把你写的确切的JSF代码?只有这样我们才能真正帮助。 – bjedrzejewski

+0

嗨jedrus07,我让我的问题更加明确。请阅读,我希望你的反馈。谢谢 !! –

回答

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> 

与此唯一的问题是,它会重复选择的值逐默认这样的:

enter image description here

你我想你想是这样的:

enter image description here

所以对于这件事情,我会建议你使用数组球员:

itemValue="#{player}" 

但是从这个数组取出预先选择的选项

+0

谢谢pmking!我这样做,但现在的问题是验证者。当您提交此页面时,会显示信息错误。我认为转换器没有找到列表中的对象。 –