【发布时间】:2013-09-16 09:55:07
【问题描述】:
我正在使用两个 selectOneMenu。选择第一个应通过提供所选值作为参数来填充第二个。我在网上查了很多东西,但仍然没有找到解决方法。侦听器方法在下拉值更改时被调用。有人请帮帮我。 (仅当我启用注释行时才有效)
<p:selectOneMenu value="#{myBean.mGroup}" id="mGroup" style="width:130px;" >
<f:selectItem itemLabel="Environment" itemValue="E"></f:selectItem>
<f:selectItem itemLabel="Health" itemValue="H"></f:selectItem>
<f:selectItem itemLabel="Physical" itemValue="P"></f:selectItem>
<p:ajax render="@form" listener="#{myBean.mGroupChangedListener}" />
</p:selectOneMenu>
<p:selectOneMenu id="mClass" style="width: 130px;" value="#{myBean.mClass}">
<!-- <f:selectItem itemLabel="Temp1" itemValue="Temp1" /> if i remove comment from this line, it works -->
<f:selectItems value="#{myBean.mClassList}" var="clas" itemLabel="#{clas.mClassDesc}" itemValue="#{clas.mClassId}" />
</p:selectOneMenu>
// listener method
public void mGroupChangedListener(AjaxBehaviorEvent event) {
List<MClass> mClassList = service.getMClass(event.getComponent().getAttributes().get("value").toString());
myBean.setMClassList(mClassList);
}
【问题讨论】:
-
#{smyBean.mClassList}" 是错字吗?还是您使用的是 smyBean?
-
抱歉,打错了。
-
我认为是更新问题。您必须使用 FireBug 检查目标 selectOneMenu 的 id 值并在 p:ajax 组件中编辑您的更新。
标签: ajax jsf-2 primefaces jsf-1.2 selectonemenu