我正在尝试像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>
这是我的托管bean
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."));
}
}
有谁知道为什么我得到验证错误甚至很难我没有使用验证? 提前谢谢。