我正在尝试像http://www.primefaces.org/showcase/ui/pprSelect.jsf中那样做一个级联组合,它工作得很好,直到我点击我的提交按钮,然后我收到消息“验证错误值无效”,只有当我选择两个组合时才会发生这种情况。这是我的看法:
<h:form id="agregarGestor">
<p:growl id="growl2" showDetail="true" />
<table id="display">
<tr>
<td><h:outputText value="Originador:" /></td>
<td>
<p:selectOneMenu id="originador" value="#{gestorMB.originador}">
<f:selectItem itemLabel="Selecciona Originador" itemValue="" />
<f:selectItems value="#{gestorMB.originadores}" />
<p:ajax update="mensajeria" listener="#{gestorMB.handleOriginadorChange}" />
</p:selectOneMenu>
</td>
<td><h:outputText value="Mensajeria:" /></td>
<td>
<p:selectOneMenu id="mensajeria" value="#{gestorMB.mensajeria}">
<f:selectItem itemLabel="Selecciona Mensajeria" itemValue="" />
<f:selectItems value="#{gestorMB.mensajerias}" />
</p:selectOneMenu>
</td>
</tr>
<tr>
<td>
<p:commandButton value="Guardar" update="growl2 :gestorForm:gestoresTable" action="#{gestorMB.agregarGestor}"/>
</td>
</tr>
</table>
</h:form>
这是我的托管豆
private List<OriginadorDTO> listOriginadoresDTO;
private Map<String,String> originadores = new HashMap<String, String>();
private String originador;
private List<MensajeriaDTO> listMensajeriasDTO;
private Map<String, String> mensajerias = new HashMap<String, String>();
private String mensajeria;
public void handleOriginadorChange() {
try {
populateMensajerias(originador);
} catch (ServiceException ex) {
Logger.getLogger(GestoresManagedBean.class.getName()).log(Level.SEVERE, null, ex);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "ERROR",
"Ocurrió un error al seleccionar un originador."));
}
}
public void agregarGestor() {
try {
if (idNivel != 4) {
System.out.println("mensajeria: " + mensajeria);
getGestor().setIdSupervisor(new Integer("" + mensajeria));
} else {
getGestor().setIdSupervisor(idSupervisor);
}
/*service.addGestor(getGestor());
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.FACES_MESSAGES,
"Exito al agregar el gestor: " + getGestor().getNombre()));
populateGestores();*/
} catch (Exception e) {
Logger.getLogger(GestoresManagedBean.class.getName()).log(Level.SEVERE, null, e);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "ERROR",
"Ocurrió un error al agregarW el gestor."));
}
}
有谁知道为什么我会遇到验证错误,即使我没有使用验证?提前致谢。