2015-11-02 59 views
0

我遇到了primefaces selectonemenu的问题,它只显示cube.name(下拉菜单中的字母cube.name不是cube.name的值),下面是代码。selectonemenu没有显示来自bean的值

<p:selectOneMenu id="cubeConfigId" value="#{projectModel.selectedProject.cubeConfigId}" > 
    <f:selectItem itemLabel="Select One" itemValue="" /> 
    <f:selectItems value="#{projectModel.cubeConfigEntities}" var="cube" itemLabel="cube.name" itemValue="cube.cubeConfigId"/> 
    </p:selectOneMenu> 

var =“cube”究竟干什么?

回答

3

您得到了itemLabel="cube.name"而不是itemLabel="#{cube.name}"(与itemValue相同)。

什么是显示由itemLabel="cube.name"决定让你看到你的标签了 - 在这种情况下,它是唯一的名字(如果你做这样的事情itemLabel="#{cube}" - toString()将显示Cube实体)。支持bean中保存的是itemValue

var="cube"只是value="#{projectModel.cubeConfigEntities}"的迭代器。如果cubeConfigEntitiesCube实体列表,则var="cube"Cube在一个循环迭代中,在另一个循环迭代中,它将从列表等中采取另一个Cube。您可以通过在cube上调用它们来访问Cube方法。

+0

谢谢你工作,并感谢var答案。我从来没有想过它是一个迭代器,但它现在有意义。谢谢 – snafua