我正在使用 JSf2.1 开发一个 Web 应用程序。我正在按照教程编写一个 selectOneMenu(下拉列表框)。
我需要有 2 个下拉框(A 和 B),但本质上调用相同的 ajax 侦听器函数,该函数将使用选项 A 和 B 进行一些计算...
那么,我们可以像这样嵌套 selectOneMenu 吗?
<h:form id= "ourForm">
<h:selectOneMenu value= "#{bean.valA}"...>
<f:selectItems ... />
<h:selectOneMenu value= "#{bean.valB}"...>
<f:selectItems ... />
<f:ajax listener="#{bean.listener}" render="ourForm"/>
</h:selectOneMenu>
</h:selectOneMenu>
</h:form>
以及 bean 侦听器方法:
public void Listener{
//use valA and valB
}
好吧,我尝试执行上述操作,但页面显示警告:
表单组件需要在其祖先中有一个 UIForm。建议附上必要的内容
我通过在每个 selectOneMenu 上调用相同的侦听器来尝试不使用嵌套,但我得到相同的随机行为..即:当我选择 A 的 elem 1 保留 B 上的“prev”选择时,框 B 随机将其选择更新为默认值,反之亦然!
请指教。