我在JSF2.0中的标记有问题,希望有人指出我做错了什么。这是用户界面中的内容:
<h:panelGroup>
<h:form id="theForm">
<h:selectOneMenu id="theMenu" value="#{viewBean.selectedItem}">
<f:ajax event="change" render="selectedItemText"/>
<f:selectItem itemLabel=""/>
<f:selectItems value="#{viewBean.selectableItems}"/>
</h:selectOneMenu>
<h:outputText id="selectedItemText" value="#{viewBean.selectedItemText}" />
</h:form>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)
这很好用-我的对话范围内的支持bean有一个方法setSelectedItem,它被调用,并且在我第一次从菜单中选择另一个项目时就可以完成它;输出文本在前端更新,很高兴。但是,对菜单选择的进一步更改不会通过ajax触发对设置程序的调用。我也在f:ajax标签上的侦听器上进行了尝试-侦听器方法也仅在第一次调用(代码中的断点才能弄清楚)。
我做错了什么吗?