0

p:selectOneListboxリクエスト スコープ Bean を使用して ajax 経由で selectItems リストを取得 しています。したがって、フォームを送信すると、次のエラーが発生します。

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

の値を任意の Bean プロパティに送信したくないp:selectOneListboxため、そのコンポーネントの値 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を参照しているエラーがidにまったく存在しないとは思いません...<p:selectOneListbox id="usrProjctsList"idj_idt153:j_idt159:j_idt184:j_idt194

view sourceブラウザで実行してIDj_idt153:j_idt159:j_idt184:j_idt194を探し、それが誰のものかを調べてみてください

また、検証をスキップするために追加するかimmediate="true"、その面倒なコンポーネントに追加することもできます<p:ajax<p:ajaxj_idt153:j_idt159:j_idt184:j_idt194

于 2012-06-18T05:22:28.357 に答える
0

ダニエルが言ったように、IDも一致しません。ただし、検証をスキップするにはprocess=@this (and other stuff, except the listBox)、ajax イベントで を使用することもできます。プライムフェイスを使用しているため、そこに書かれたものだけが処理され、残りはスキップされます。

于 2012-06-18T06:46:06.557 に答える