避免完全验证/提交p:selectOneListbox的值

时间:2012-06-18 05:02:40

标签: java jsf

我正在使用请求范围的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}"/>

2 个答案:

答案 0 :(得分:1)

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

在您的浏览器中执行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

答案 1 :(得分:0)

丹尼尔说,身份证也不匹配。但是为了跳过验证,您还可以在ajax事件上使用process=@this (and other stuff, except the listBox)。由于你使用的是primefaces,这只会处理写在那里的内容并跳过其余部分。