【发布时间】:2013-01-18 08:37:07
【问题描述】:
我的程序中有两个下拉菜单,第二个是根据第一个中选择的值填充的。
当第一个菜单中只有一个值时,第二个菜单不会反映这些值,但当我有多个值时它会起作用。什么可能导致错误?
代码如下:
<h:selectOneMenu id="blSearchFacilityInput"
value="#{bLDashBoardAction.facilityId}" style="width:80px;">
<f:ajax event="valueChange" render="blSearchzoneInput"
listener="#{bLDashBoardAction.facValueChangeEvent}"/>
<f:selectItems value="#{bLDashBoardAction.svaFaciltyList}" var="c"
itemLabel="#{c.facCode}" itemValue="#{c.id}"/>
</h:selectOneMenu>
<h:selectOneMenu id="blSearchzoneInput" value="#{bLDashBoardAction.zoneId}"
style="width:80px;">
<f:ajax event="valueChange" render="blSearchSectorInput"
listener="#{bLDashBoardAction.zoneValueChangeEvent}"/>
<f:selectItems value="#{bLDashBoardAction.zoneList}" var="c"
itemLabel="#{c.zoneCode}" itemValue="#{c.zoneId}"/>
</h:selectOneMenu>
【问题讨论】:
-
你是否在你的 backing bean 中使用默认值初始化
#{bLDashBoardAction.facilityId}? -
从你的问题来看,我猜你的第一个下拉菜单显示了选项,但没有分配值。由于无法将其更改为另一个值,因此永远不会触发第二个菜单的更新。会这样吗?
标签: jsf-2 selectonemenu