0

我正在尝试像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."));               
    }
}

有谁知道为什么我会遇到验证错误,即使我没有使用验证?提前致谢。

4

0 回答 0