2011-10-20 10 views
4

これは重複する投稿ではなく、私は研究をしましたが、助けてくれません。ajaxレンダリング後にjavax.faces.ViewStateが見つからない

まず、これは私のページです...簡単に読むために簡略化されています。最初のクリックは、ViewStateの値を取り戻しているので、dataScrollerを作る

  <h:form id="treeForm"> 
       <f:event type="preRenderView" listener="#{taskTreeBean.update}" />    
       <rich:tree id="tree" nodeType="#{node.type}" var="node" 
        value="#{taskTreeBean.rootNodes}" toggleType="client" 
        selectionType="ajax" 
        render="@all" 
        selectionChangeListener="#{taskTreeBean.selectionChanged}"> 
        <rich:treeNode> 
        ... 
        </rich:treeNode> 
       </rich:tree> 
      </h:form> 
      <h:form id="taskListTableForm"> 
       <rich:dataTable id="taskListTable" styleClass="tasklist" keepSaved="true" value="#{taskListModel}" var="task" 
        rowClasses="odd-row, even-row" rows="3"> 
        <rich:column> 
        ... 
        </rich:column> 
        <f:facet name="footer"> 
         <rich:dataScroller id="scroller" for="taskListTable" /> 
        </f:facet> 
       </rich:dataTable> 
      </h:form> 

私はいくつかは、ツリーノード、タスクリストフォームがレンダリングされます]をクリックしますが、ビューステートが消え

は、次/前のページへ 2回のクリックが必要です。

ここでJIRAを確認しました - http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-790

試したレンダリング= "@ all"またはrender = "treeForm、taskListTableForm"は両方とも失敗しました。 mojarraが2.2をリリースするのを待つことはできません。それでは、ここに回避策がありますか?

ありがとうございます。 JIRAは分かりにくいだけです。

編集:ツリーノードをクリックすると、別の問題があります。ページは1から2のデータテーブルになります。どうして?

+0

私はそれが答えを受け入れる時だと思う.. – Ced

答えて

4

この問題はおそらく解決したが、今後の参考としてthisは解決策を提供するはずです。

+0

親指おかげで多くのこの文書は全体の問題を説明した 私は最初のフォームを提出するときに2番目のフォームをレンダリングする必要があります私は両方のフォームとそれぞれのレンダリングそれは運がありませんが、1つのフォームは他のものをレンダリングする必要があります。これは修正ルールです – YouYou

+0

ありがとうございました。 – Ced

0

私は同じ問題を抱え、<f:ajax/>をPrimeFaces 3.0の<p:ajax/>に置き換えて回避しました。問題のページには他のPrimeFacesコンポーネントはありません。私はなぜそれが動作するのかわからないが、うまくいけばあなたの場合になります。