struts开发实践—简单树的实现

类别:Java 点击:0 评论:0 推荐:
--文章源自一位网友


struts开发实践-简单树的实现

本案主要功能是完成用java语言写的一个简单的树,优点在于jsp页面的代码比较简单干净。缺点在于每次操作都要去服务器端再去取一次数据。近来在http://www.aspaid.com/网站找到一个javascript写的树,将js代码与java代码混编,可以得到一个功能比较全面的树,而且数据可一次性从服务器端取出,大家可以试一下。下面介绍的是前一种方法的代码实例。

1.定义MyTreeForm

package test;

import org.apache.struts.action.*;

import javax.servlet.http.*;

public class MyTreeForm

    extends ActionForm {

  /**id号*/

  private int id = 0;

  /**级别*/

  private int level = 0;

  /**名称*/

  private String text = "";

  /**上级节点*/

  private String upIds = "0";

  /**是否有子节点 0:no;1:yes;*/

  private String haveChild = "0";

  /**是否展开 //0:false;1:true;*/

  private String ifExpanded = "0";

  /**是否有下一个节点0:false;1:true;*/

  private String haveNext = "0";

  /**是否显示 0:visible;1:unvisible;*/

  private String isVisible = "0";

  /**节点链接串*/

  private String link = "null";

  public void setHaveChild(String haveChild) {

    this.haveChild = haveChild;

  }

 

  public String getHaveChild() {

    return haveChild;

  }

 

  public void setHaveNext(String haveNext) {

    this.haveNext = haveNext;

  }

 

  public String getHaveNext() {

    return haveNext;

  }

 

  public void setIfExpanded(String ifExpanded) {

    this.ifExpanded = ifExpanded;

  }

 

  public String getIfExpanded() {

    return ifExpanded;

  }

 

  public void setIsVisible(String isVisible) {

    this.isVisible = isVisible;

  }

 

  public String getIsVisible() {

    return isVisible;

  }

 

  public void setLink(String link) {

    this.link = link;

  }

 

  public String getLink() {

    return link;

  }

 

  public void setId(int id) {

    this.id = id;

  }

 

  public int getId() {

    return id;

  }

 

  public void setLevel(int level) {

    this.level = level;

  }

 

  public int getLevel() {

    return level;

  }

 

  public void setState(String state) {

    this.state = state;

  }

 

  public String getState() {

    return state;

  }

 

  public void setText(String text) {

    this.text = text;

  }

 

  public String getText() {

    return text;

  }

 

  public void setUpIds(String upIds) {

    this.upIds = upIds;

  }

 

  public String getUpIds() {

    return upIds;

  }

 

  public ActionErrors validate(ActionMapping actionMapping,

                               HttpServletRequest httpServletRequest) {

    /**@todo: finish this method, this is just the skeleton.*/

    return null;

  }

 

  public void reset(ActionMapping actionMapping,

                    HttpServletRequest httpServletRequest) {

  }

}

2.你就可以将你要显示的树的结果集,按照myTreeForm的样式存放在新的list中。

3.jsp的显示代码节选:

<%@ page contentType="text/html;charset=GBK" %>

<%@ taglib uri="/bean" prefix="bean" %>

<%@ taglib uri="/html" prefix="html" %>

<%@ taglib uri="/logic" prefix="logic" %>

<html:errors/>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<%--树形显示区--%>

<td width="200" valign="top">

  <html:form action="/sortAdminAction.do" method="post">

  <table width="300" cellspacing="0" cellpadding="1">

     <tr><td><a href="javascript:doGenerateTree('0')"><img src="images/base.gif" border="0" >root</a></td></tr>

     <logic:iterate name="treeList" id="treeList" type="test.MyTreeForm">

         <logic:equal name="treeList" property="ifExpanded" value="1">

            <tr><td><img src="images/space.gif" width="<bean:write name="treeList" property="level"/>" height="1"><a href="javascript:doGenerateTree('<bean:write name="treeList" property="upIds"/>')"><img src="images/trees/no.gif" border="0"><bean:write name="treeList" property="text"/></a></td></tr>

         </logic:equal>

         <logic:equal name="treeList" property="ifExpanded" value="0">

            <tr><td><img src="images/space.gif" width="<bean:write name="treeList" property="level"/>" height="1"><a href="javascript:doGenerateTree('<bean:write name="treeList" property="upIds"/>')"><img src="images/trees/have.gif" border="0"><bean:write name="treeList" property="text"/></a></td></tr>

         </logic:equal>

     </logic:iterate>

  </table>

  <html:hidden property="upIds"/>

  </html:form>

</td></tr>

</table>

</body>

</html>

<SCRIPT LANGUAGE="JavaScript"> 

function doGenerateTree(upIds){

   myTreeForm.upIds.value=upIds;

   myTreeForm.submit();

}

</SCRIPT>

4。其实掌握了方法,写一简单树不成问题,如何写的树更美观、互动性更好、速度快还得花点功夫,有好的方法别忘了跟大家交流:)。

 

 

 

 

 

 

 

本文地址:http://com.8s8s.com/it/it14789.htm