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

原创 2004年04月13日 14:14:00

 struts开发实践-简单树的实现<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

本案主要功能是完成用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。其实掌握了方法,写一简单树不成问题,如何写的树更美观、互动性更好、速度快还得花点功夫,有好的方法别忘了跟大家交流:)。

 

 

 

 

 

 

 

【Struts2】创造一个最简单、最基本的Struts2工程

首先,在Eclipse创造一个新的Web工程 然后直接使用
  • yongh701
  • yongh701
  • 2014年09月18日 16:06
  • 1210

Struts2 +JDBC——简单登录

struts2+JDBC的简单登录注册
  • so_sss
  • so_sss
  • 2014年09月02日 14:22
  • 2508

适合新手动手实践的PHP搭配mysql的小项目--01建立数据库

适合新手动手实践的PHP搭配mysql的小项目,本项目主要实现以下几点: 简单的用户注册简单的用户登录修改用户信息查看学生基本信息(查看学生以及对应的班级信息,实现分页)    1.搭建数据库...
  • jane9568
  • jane9568
  • 2016年02月04日 14:38
  • 1331

防止未登录用户操作—struts2拦截器简单实现

一般我们的web应用都是只有在永固
  • zhutulang
  • zhutulang
  • 2014年08月02日 23:22
  • 45982

防止未登录用户操作—struts2拦截器简单实现

一般,我们的web应用都是只有在用户登录之后才允许操作的,也就是说我们不允许非登录认证的用户直接访问某些页面或功能菜单项。我还记得很久以前我的做法:在某个jsp页面中查看session中是否有值(当然...
  • congcongsuiyue
  • congcongsuiyue
  • 2014年12月22日 21:14
  • 927

防止未登录用户操作—struts2拦截器简单实现

struts2 拦截器和过滤器区别: 1: 拦截器是基于java发射机制的,过滤器是基于函数回调 2: 过滤器是依赖与servlet容器,而拦截器是不依赖于servlet容器 3:拦截器只能对acti...
  • qq_32078397
  • qq_32078397
  • 2017年01月04日 16:11
  • 246

防止未登录用户操作—struts2拦截器简单实现

 一般,我们的web应用都是只有在用户登录之后才允许操作的,也就是说我们不允许非登录认证的用户直接访问某些页面或功能菜单项。我还记得很久以前我的做法:在某个jsp页面中查看session中是否有...
  • dubaitianxia
  • dubaitianxia
  • 2016年10月14日 14:55
  • 422

防止未登录用户操作—struts2拦截器简单实现

一般,我们的web应用都是只有在用户登录之后才允许操作的,也就是说我们不允许非登录认证的用户直接访问某些页面或功能菜单项。我还记得很久以前我的做法:在某个jsp页面中查看session中是否有值(当然...
  • judyge
  • judyge
  • 2016年03月28日 12:09
  • 629

struts 简单入门实践-demo

1.下载所需jar包 官网地址:struts官网地址  选择相应版本进行下载。 2.创建工程,引入jar包(eclipse)    选择创建一个 Dynamic Web project 勾选默...
  • u011982967
  • u011982967
  • 2017年02月19日 20:12
  • 685

acegi security实践教程—简单定制logoutFilter

回顾:     logoutFilter过滤器,我已经带大家了解过了。其中注销是由handler.logout完成的。这就需要在配置文件中配置具体的handler,比如securitycontextl...
  • llhhyy1989
  • llhhyy1989
  • 2014年03月12日 10:16
  • 2193
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts开发实践—简单树的实现
举报原因:
原因补充:

(最多只允许输入30个字)