1 Reply Latest reply on Aug 28, 2012 11:10 AM by strannik

    rich:tree compatibility issue with Spring Web Flow

    strannik

      Hi, guys

       

      I'm working with the following environment: Spring Web Flow 2.3.1, JSF 2.1, RichFaces 4.2.2

      The next case worked in RF 3.x but apparently doesn't work in RF 4.x.

       

      I have a Spring Web Flow variable let's called treeBean.

       

      <var name="treeBean" class="org.test.TreeBean" />

       

      and a tree based upon it(simplified variant).

       

      <rich:tree toggleType="client"
      value="#{treeBean.root}" var="item">
      <rich:treeNode>
      <h:outputText value="#{item.text}" />
      </rich:treeNode>
      </rich:tree>

       

      The root node is populated with items before view is rendered. However tree is empty upong rendering.

      If I remove SWF variable and put @ManagedBean annotation on TreeBean class everything works fine.

       

      public class TreeBean implements Serializable {

          private DataTreeNode root;

       

          public TreeBean() {

              root = new DataTreeNodeImpl("aa");

              root.addChild("test", new DataTreeNodeImpl("test2"));

          }

       

          public DataTreeNode getRoot() {

              return root;

          }

       

          public void setRoot(DataTreeNode root) {

              this.root = root;

          }

      }

       

      The investigation showed that issue probably occured because regular serialization-deserialization clears the children of the root.

      That didn't happen in ManagedBean case(where serialization is not needed).

       

      Please advise on the issue.