我正在使用请求范围的bean通过ajax获取p:selectOneListbox的selectItems列表。因此,在提交表单后,我得到了这个错误:

j_idt153:j_idt159:j_idt184:j_idt194: Validation Error: Value is not valid


我不想将p:selectOneListbox的值提交给任何bean属性,这就是为什么省略了该组件的值EL的原因,但是JSF仍在验证所选的选项,并且由于我的bean已被请求范围限制,所以它不存在。现在,我想完全跳过验证此组件的步骤,因为此p:selectOneListbox仅用于演示目的,并且在提交表单过程之后不使用其值。如何避免完全验证/提交p:selectOneListbox的值

        <p:ajax event=".." listener="#{pim.retrieveProjects()}" update="usrProjctsList" />

        <p:selectOneListbox id="usrProjctsList" onchange="jsfElmnt('#{cc.clientId}:selUsrProjct').val($(this).val());">
            <f:selectItems value="#{pim.projects}" var="project" itemLabel="#{project.title}" itemValue="#{project.id}"/>
        </p:selectOneListbox>

        <h:inputHidden id="selUsrProjct" value="#{bean.underProject}"/>

最佳答案

我认为引用j_idt153:j_idt159:j_idt184:j_idt194: Validation Error: Value is not valid的错误<p:selectOneListbox id="usrProjctsList"根本不会导致id不在j_idt153:j_idt159:j_idt184:j_idt194 id中...

在浏览器中执行view source并查找j_idt153:j_idt159:j_idt184:j_idt194 id并尝试找出它属于谁

您也可以尝试将immediate="true"添加到<p:ajax以跳过验证,或尝试将<p:ajax添加到该麻烦的组件j_idt153:j_idt159:j_idt184:j_idt194

关于java - 避免完全验证/提交p:selectOneListbox的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11077149/

10-11 11:15