Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 为什么我在primefaces上得到无效值?_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf 为什么我在primefaces上得到无效值?

Jsf 为什么我在primefaces上得到无效值?,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我正在尝试做一个类似于中的级联组合,它可以完美地工作,直到我点击我的提交按钮,然后我得到消息“validation error the value is invalid”,并且只有在我同时选择两个组合时才会发生。 以下是我的看法: <h:form id="agregarGestor"> <p:growl id="growl2" showDetail="true" /> <table id="display"> <tr>

我正在尝试做一个类似于中的级联组合,它可以完美地工作,直到我点击我的提交按钮,然后我得到消息“validation error the value is invalid”,并且只有在我同时选择两个组合时才会发生。 以下是我的看法:

<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."));               
    }
}
private List listOriginadoresDTO;
private Map originadores=新HashMap();
私人弦乐原创者;
私有列表列表mensajerisdto;
私有映射mensajerias=newhashmap();
私人字符串门萨杰里;
公共无效handleOriginadorChange(){
试一试{
普罗泰曼萨杰里亚斯(原始人);
}捕获(ServiceException ex){
Logger.getLogger(GestoresManagedBean.class.getName()).log(Level.SEVERE,null,ex);
FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_错误,“ERROR”,
“原创性选择的错误。”);
}       
} 
公共无效agregarGestor(){
试一试{
如果(idNivel!=4){
System.out.println(“mensajeria:+mensajeria”);
getGestor().setIdSupervisor(新整数(“+mensajeria”);
}否则{
getGestor().setIdSupervisor(idSupervisor);
}
/*addGestor(getGestor());
FacesContext.getCurrentInstance().addMessage(空,新FacesMessage(FacesMessage.FACES_消息,
“Exito al-agregar el-Gester:”+GetGester().getNombre());
populateGestores();*/
}捕获(例外e){
Logger.getLogger(GestoresManagedBean.class.getName()).log(Level.SEVERE,null,e);
FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_错误,“ERROR”,
“犯了错误的人。”);
}
}
有人知道为什么我在不使用验证的情况下会出现验证错误吗???
提前感谢。

尝试
process=@这个
commandbutton
中的
可以工作,但是现在当我在Agregorgestor()中打印变量gestorMB.mensajeria时,我在变量gestorMB.mensajeria中得到了空指针异常。为什么?我看到了
System.out.println(“test”)在上述方法中。我没有看到你打印任何变量扫描你粘贴你的populateMensajerias方法的代码请?JSF检查你当前选择的值在你提交表单时是否保留在选择的可能值中。可能它没有在那里找到它,所以你得到了那个错误。检查
MensajeriaDTO
equals()
hashCode()
方法是否正确实现。