2015-11-02 58 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