我在一个页面中有两个 p:selectOneMenu,它们的内容相同,用户必须选择两个不同的项目,用户不能在两个 selectOneMenu 中选择相同的项目。如何实施此验证?我当前的代码是这样的:
<p:selectOneMenu id="itemOne"
value="#{backingBean.itemOne}"
required="true" label="Item One:" requiredMessage="Item one is required!">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{backingBean.itemList}" var="item"
itemLabel="#{item.QLabel}" itemValue="#{item.QLabel}" />
</p:selectOneMenu>
<p:selectOneMenu id="itemTwo"
value="#{backingBean.itemTwo}"
required="true" label="Item Two:" requiredMessage="Item two is required!">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{backingBean.itemList}" var="item"
itemLabel="#{item.QLabel}" itemValue="#{item.QLabel}" />
</p:selectOneMenu>
我想到的第一件事是在两个菜单中附加一个带有“onchange”事件的监听器,删除已经选择的项目并更新另一个菜单,但这对于如此简单的任务来说似乎有点过分了。有没有其他方法可以做到这一点?