伙计们,当用户选择combo_pedido_tipoplm selectOneMenu的一个选项时,我需要更新另一个selectOneMenu。如果用户选择“选择一个”选项,则需要清除第二个选项。
我已经尝试了所有方法,但在我从 h:selectOneMenu 中选择了选项“选择一个”(Selecione) 后,我无法调用我的 actionListener。
XHTML
<h:selectOneMenu id="combo_pedido_tipoplm" value="#mBeanManterPedido.tipoPlacaMaeFiltro}" required="true" disabled="#{!mBeanManterPedido.pedidoValido or mBeanManterPedido.clonado}">
<f:selectItem itemLabel="#{msgTemplate.lblSelecione}" />
<f:selectItems value="#{mBeanManterPedido.selectItemsTipoPlacaMae}" />
<p:ajax event="change" listener="#{mBeanManterPedido.tipoPlacaMaeChange}" process="@this"/>
</h:selectOneMenu>
MBean
private TipoPlacaMae tipoPlacaMaeFiltro;
public void popularTipoPlacaMae() {
this.selectItemsTipoPlacaMae = new ArrayList<SelectItem>();
for (TipoPlacaMae tipoplaca : TipoPlacaMae.values()) {
this.selectItemsTipoPlacaMae.add(new SelectItem(tipoplaca, tipoplaca.getNome()));
}
UtilsCommon.orderByLabel(selectItemsTipoPlacaMae);
}
public void tipoPlacaMaeChange(AjaxBehaviorEvent e) {
// deseleciona a PlacaMae atualmente selecionada.
pedido.setPlacaMae(null);
limparDadosPedido();
popularPlacaMae();
}
如果我选择“选择一个”选项,我会收到一个验证错误,因为这个 selectOneMenu 被重新查询,并且我的 tipoPlacaMaeFiltro 设置器没有被调用。
<?xml version='1.0' encoding='UTF-8'?>
{“验证失败”:真}
我能做些什么呢?