这是我的faces.config的片段。
我正在使用方法绑定方法来使用值更改侦听器事件
<managed-bean>
<managed-bean-name>MenuBean</managed-bean-name>
<managed-bean-class>mtr.MenuBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<p:selectOneMenu style="width:300px;" value="#{MenuBean.stateList}" onchange="submit()" valueChangeListener="#{MenuBean.Change}">
<f:selectItem itemLabel="Select One"></f:selectItem>
<f:selectItems value="#{MenuBean.stateList}" itemValue="#{MenuBean.stateList}"></f:selectItems>
</p:selectOneMenu>
public void Change(ValueChangeEvent event) {
System.out.println("I CHANGED");
System.out.println(event.getSource().toString());
}
尽管做了这一切,我的价值变化听众仍未被调用。
答案 0 :(得分:0)
请尝试以下操作:使用p:ajax
<p:selectOneMenu style="width:300px;" value="#{MenuBean.stateList}">
<f:selectItem itemLabel="Select One"/>
<f:selectItems value="#{MenuBean.stateList}" itemValue="#{MenuBean.stateList}"/>
<p:ajax listener="#{MenuBean.stateChange}" update="componentid_you_want_to_update"/>
</p:selectOneMenu>
public void stateChange(AjaxBehaviorEvent event) {
System.out.println("I CHANGED");
System.out.println(event.getSource().toString());
}
<强>更新强>
我不清楚你的代码
<p:selectOneMenu style="width:300px;" value="#{MenuBean.stateList}">
<f:selectItems value="#{MenuBean.stateList}"
为什么使用相同的EL
#{MenuBean.stateList} ?
我想,EL
的{{1}}将失踪。它应该像p:selectOneMenu
。