0

我正在 p:selectOneListbox使用请求范围的 bean 为 via ajax 获取 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}"/>
4

2 回答 2

1

我不认为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_idt194id 中......

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

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

于 2012-06-18T05:22:28.357 回答
0

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

于 2012-06-18T06:46:06.557 回答