我在使用primefaces selectonemenu时遇到问题,它只显示了cube.name(下拉列表的verbiage cube.name不是cube.name的值),这里是代码。
<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”到底是做什么的?
答案 0 :(得分:3)
您获得了itemLabel="cube.name"
而不是itemLabel="#{cube.name}"
(itemValue
也是如此)。
显示的内容由itemLabel="cube.name"
确定,因此您可以看到标签中的内容 - 在这种情况下,它只是名称(如果您执行此类itemLabel="#{cube}"
- {{1} }将显示toString()
实体。支持bean中保存的内容位于Cube
。
itemValue
只是var="cube"
的迭代器。如果value="#{projectModel.cubeConfigEntities}"
是cubeConfigEntities
个实体的列表,则Cube
在一次循环迭代中为var="cube"
,在另一个循环迭代中,它会从列表中获取另一个Cube
等。您可以通过在Cube
上调用方法来访问Cube
方法。