我现在实现了一次性获取数据的树显示,如下:
根节点
  节点a
    子节点a1
    子节点a2
  节点b
    子节点b1
    子节点b2
  ......
但这些数据都是一次性加载了的!我现在想实现的功能是:
点击"节点a"才显示"子节点a1",“子节点a2”,但用netui:tree标签
不知道怎样做!它好像就是要一次性加载下来才行!
望高手指点一下!高分求助!

解决方案 »

  1.   

    package tree;
    /**
     * @jpf:controller
     * @jpf:view-properties view-properties::
     * <!-- 此数据是自动生成的。 不推荐手工编辑此区域。 -->
     * <view-properties>
     * <pageflow-object id="pageflow:/tree/TreeController.jpf"/>
     * <pageflow-object id="action:treeState.do">
     *   <property value="180" name="x"/>
     *   <property value="40" name="y"/>
     * </pageflow-object>
     * <pageflow-object id="action:begin.do">
     *   <property value="80" name="x"/>
     *   <property value="100" name="y"/>
     * </pageflow-object>
     * <pageflow-object id="action-call:@page:tree.jsp@#@action:treeState.do@">
     *   <property value="96,120,120,144" name="elbowsX"/>
     *   <property value="31,31,31,31" name="elbowsY"/>
     *   <property value="East_1" name="fromPort"/>
     *   <property value="West_1" name="toPort"/>
     * </pageflow-object>
     * <pageflow-object id="page:tree.jsp">
     *   <property value="60" name="x"/>
     *   <property value="40" name="y"/>
     * </pageflow-object>
     * <pageflow-object id="page:index.jsp">
     *   <property value="240" name="x"/>
     *   <property value="100" name="y"/>
     * </pageflow-object>
     * <pageflow-object id="page:content.jsp">
     *   <property value="120" name="x"/>
     *   <property value="100" name="y"/>
     * </pageflow-object>
     * <pageflow-object id="forward:path#tree#tree.jsp#@action:treeState.do@">
     *   <property value="144,120,120,96" name="elbowsX"/>
     *   <property value="31,31,31,31" name="elbowsY"/>
     *   <property value="West_1" name="fromPort"/>
     *   <property value="East_1" name="toPort"/>
     *   <property value="tree" name="label"/>
     * </pageflow-object>
     * <pageflow-object id="forward:path#success#index.jsp#@action:begin.do@">
     *   <property value="116,160,160,204" name="elbowsX"/>
     *   <property value="91,91,91,91" name="elbowsY"/>
     *   <property value="East_1" name="fromPort"/>
     *   <property value="West_1" name="toPort"/>
     *   <property value="success" name="label"/>
     * </pageflow-object>
     * </view-properties>
     * ::
     *///以上一堆注释代码,不必理会public class TreeController extends  com.bea.wlw.netui.pageflow.PageFlowController
    {
        //定义树形根结点
        public com.bea.wlw.netui.tags.html.TreeNode liweinode = null;
        
        //页面流加载时运行代码
        public void onCreate() throws Exception
        {
            int i=10;
            
            //实例化树形结点
            //第一个参数:结点图标
            //第二个参数:结点标签
            //第三个参数:一般为null,具体还没搞懂
            //第四个参数:结点的点击动作
            //第五个参数:作用的页面,即在index.jsp定义的内容框架名fraContent
            //第六个参数:展开还是合并
            liweinode=new com.bea.wlw.netui.tags.html.TreeNode(
             "folder_closed.gif", 
                    "root", 
                    null, 
                    "content.jsp", 
                    "fraContent", 
                    true);   
            com.bea.wlw.netui.tags.html.TreeNode treenode[]=new com.bea.wlw.netui.tags.html.TreeNode[i];
            for(i=0;i<10;i++)
            {
            treenode[i] = new com.bea.wlw.netui.tags.html.TreeNode(
                    "folder_closed.gif",
                    "test"+i, 
                    null, 
                    "content.jsp?sendvalue="+i, 
                    "fraContent", 
                    true); 
                    liweinode.addChild(treenode[i]); 
            }                
        }
        
         /**
         * Handles the state of the tree when a a link is clicked.
         * 
         * @jpf:action
         * @jpf:forward name="tree" path="tree.jsp"
         */
        
        //点击结点结的动作处理,要 <netui:tree中的Action一致。
        public com.bea.wlw.netui.pageflow.Forward treeState()
        {
            String nodeSel = null;
            String nodeExpanded = null;
         
            nodeSel = getRequest().getParameter(com.bea.wlw.netui.tags.html.TreeNode.SELECTED_NODE);
            nodeExpanded = getRequest().getParameter(com.bea.wlw.netui.tags.html.TreeNode.EXPAND_NODE);        if (nodeExpanded != null)
            {            com.bea.wlw.netui.tags.html.TreeNode node = liweinode.findNode(nodeExpanded);
                if (node != null)
                {
                    node.setExpanded(!node.isExpanded());
                }
                return new com.bea.wlw.netui.pageflow.Forward("tree");
            }        return new com.bea.wlw.netui.pageflow.Forward(nodeSel);
        }
        
        /**
         * 此方法代表进入页面流的入口
         * @jpf:action
         * @jpf:forward name="success" path="index.jsp"
         */
        protected com.bea.wlw.netui.pageflow.Forward begin()
        {
            return new com.bea.wlw.netui.pageflow.Forward("success");
        }
    }5.编辑页面tree.jsp,content.jsp
    ---------------------------------tree.jsp内容如下,tree对应上面定义的public liweinode,格式必须如此。action即为上面定义的
    public com.bea.wlw.netui.pageflow.Forward treeState()方法。  <body>
        <netui:tree tree="{pageFlow.liweinode}" action="treeState"></netui:tree>
      </body>
      
    content.jsp内容如下:  <body>
          <p>
              <%=request.getParameter("sendvalue")%>
          </p>
      </body>
      

  2.   

    楼上的兄弟,你这个我看到过,但我用的版本是BEA WorkSpace Studio1.1,跟这个区别比较大,里面好多类找不到!
    例如根本就没有com.bea.wlw.netui.tags.html.TreeNode这个,不知道是不是新的版本已经不是这么用了!
    还是要加那个jar包??再帮看看,谢谢指点!