一个 .<s:tree>方法:

1.引入新的标签:

<%@ taglib prefix="sd" uri="/struts-dojo-tags" %>

2.引入jar包:

struts2-dojo-plugin-2.2.3.jar

3.在<head>中增加

<sd:head/>

4.前台代码:

  <sd:tree id="a" label="总公司">
<sd:treenode id="aa" label="北京分公司" />
<sd:treenode id="bb" label="上海分公司">
<sd:treenode id="bbb1" label="综合管理部" />
<sd:treenode id="bbb2" label="研发部" />
</sd:treenode>
<sd:treenode id="cc" label="深圳分公司" />
</sd:tree>

二.dtree方法(通过读取数据库中表显示到dtree):

1.下载插件dtree。地址:http://download.csdn.net/detail/ahhmdwg/8132227

2.导入到你的web项目中:css文件和js文件放到你的项目中,将example01.html文件里的代码copy到你须要显示树形结构的jsp页面。

(1)建立数据库表:

CREATE TABLE `tree` (
`id` int(11) NOT NULL,
`name` varchar(20) DEFAULT NULL,
`parentId` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

(2)bean包下类:

package com.dwg.bean;

public class Tree {
private int id; private String name; private int parentId; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getParentId() {
return parentId;
} public void setParentId(int parentId) {
this.parentId = parentId;
} }

(3)dao层运行的自己定义sql:

public List<?

> getTreeList(final String sql) {
// TODO Auto-generated method stub return (List<?>) this.getHibernateTemplate().execute(
new HibernateCallback()
{
public Object doInHibernate(final Session session) throws HibernateException, SQLException
{
final SQLQuery query = session.createSQLQuery(sql);
return query.list(); } });
}

(4)action类:

    public String execute() throws Exception{
String sql = "select * from tree";
list = this.treeService.getTreeList(sql);
Map request = (Map) ActionContext.getContext().get("request");
System.out.println("----list1----");
request.put("list", list);
System.out.println("----list2----"); return SUCCESS;
}

(5)struts.xml文件配置

    <package name="dtree"  namespace="/dtree" extends="struts-default">
<action name="dtree" class="TreeAction">
<result name="success">/dtree.jsp</result>
</action>
</package>

(6)index.jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href="<%=basePath%>">
<title>Insert title here</title>
<sd:head/>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body> <a href="<%=basePath%>dtree/dtree.action">DtreeDemo</a>
</body>
</html>

dtree.jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head>
<base href="<%=basePath%>">
<title>Destroydrop » Javascripts » Tree</title> <link rel="StyleSheet" href="<%=basePath%>css/dtree.css" type="text/css" />
<script type="text/javascript" src="<%=basePath%>script/dtree.js"></script> </head> <body> <h1><a href="/">Destroydrop</a> » <a href="/javascripts/">Javascripts</a> » <a href="/javascripts/tree/">Tree</a></h1> <h2>Example</h2> <div class="dtree"> <p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p>
<script type="text/javascript"> d = new dTree('d');
//构造根节点
d.add(0,-1,'idada');
<s:iterator value="list" id="us">
d.add(<s:property value="#us[0]"/>,<s:property value="#us[2]"/>,'<s:property value="#us[1]"/>','dtree.jsp');
</s:iterator>
document.write(d); </script> </div> <p><a href="mailto:drop@destroydrop.com">&copy;2002-2003 Geir Landrö</a></p> </body> </html>

(7)文件夹结构截图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWhobWR3Zw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

执行效果:

版权声明:本文博客原创文章。博客,未经同意,不得转载。

struts2由&lt;s:tree&gt;要么dtree小工具 建立树的更多相关文章

  1. 2000条你应知的WPF小姿势 基础篇<45-50 Visual Tree&Logic Tree 附带两个小工具>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000Things You Should Know About C# 和 2,0 ...

  2. spoj COT - Count on a tree (树上第K小 LCA+主席树)

    链接: https://www.spoj.com/problems/COT/en/ 思路: 首先看到求两点之前的第k小很容易想到用主席树去写,但是主席树处理的是线性结构,而这道题要求的是树形结构,我们 ...

  3. [LeetCode] Second Minimum Node In a Binary Tree 二叉树中第二小的结点

    Given a non-empty special binary tree consisting of nodes with the non-negative value, where each no ...

  4. 使用tree命令导出文件夹/文件的目录树

    前提:己安装扩展: 介绍: TREE [drive:][path] [/F] [/A] /F   显示每个文件夹中文件的名称.(带扩展名)   /A   使用 ASCII 字符,而不使用扩展字符. t ...

  5. E - Is It A Tree? 并查集判断是否为树

    题目链接:https://vjudge.net/contest/271361#problem/E 具体思路:运用并查集,每一次连接上一个点,更新他的父亲节点,如果父亲节点相同,则构不成树,因为入读是2 ...

  6. dTree无限级文件夹树和JQuery同步Ajax请求

    曾经都是用JQuery对树的支持来实现文件夹树的,近来闲来无事就弄了下dTree,感觉其无限级文件夹还是挺好的,并且它的使用也比較方便,基本上就是先把要用的js文件即dtree.js和css文件dtr ...

  7. LeetCode 671. Second Minimum Node In a Binary Tree二叉树中第二小的节点 (C++)

    题目: Given a non-empty special binary tree consisting of nodes with the non-negative value, where eac ...

  8. 538 Convert BST to Greater Tree 把二叉搜索树转换为累加树

    给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和.例如:输入: 二叉搜索树:     ...

  9. 【2019.8.20 NOIP模拟赛 T2】小B的树(tree)(树形DP)

    树形\(DP\) 考虑设\(f_{i,j,k}\)表示在\(i\)的子树内,从\(i\)向下的最长链长度为\(j\),\(i\)子树内直径长度为\(k\)的概率. 然后我们就能发现这个东西直接转移是几 ...

随机推荐

  1. oschina娱乐游戏

    休闲游戏 123网络游戏 88单机游戏 201游戏模拟器/工具/引擎

  2. hdu 4736 This Is The Job The Bear Finds(2013年成都ACM网络赛)

    // Time 1718 ms; Memory 1500 K #include<iostream> #include<cstdio> #include<cmath> ...

  3. [置顶] 如何判断两个IP大小关系及是否在同一个网段中

    功能点  判断某个IP地址是否合法 判断两个IP地址是否在同一个网段中 判断两个IP地址的大小关系 知识准备 IP协议 子网掩码 Java 正则表达式 基本原理 IP地址范围 0.0.0.0- 255 ...

  4. word2vec 中的数学原理具体解释(三)背景知识

      word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注.因为 word2vec 的作者 Tomas M ...

  5. 编译cm12.1

    背景 Ubuntu 14.04 64位,硬盘空间大于100G 更新系统至最新版本号,在终端下输入 sudo apt-get update sudo apt-get upgrade 安装编译必需软件包 ...

  6. 怎样删除在Github中创建的项目

    像我这种刚開始学习的人总会不可避免的创建了一些測试性的项目.随后自然就是要删除了.那么该怎样删除呢? 你此刻可能处于这个界面: 也可能处于这个界面: 假设是第一个界面直接点击右側的"Sett ...

  7. MySQL - 主从复制及读写分离原理

    1.MySQL主从复制与读写分离原理 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL ...

  8. spark集群安装配置

    spark集群安装配置 一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoo ...

  9. Genymotion 插件在 Eclipse 和 Android Studio 中点击后无法初始化 Initialize Engine: failed 解决方法

    Genymotion 插件已更新至 1.0.6,目前无法初始化的问题已经解决. ------------------------------------------------------------ ...

  10. (step 8.2.8)hdu 1079(Calendar Game)

    题目大意是: 两个家伙在区域赛前夕闲的无聊,然后玩一种无限纠结的游戏,随即给定一个日期,每次只能移动day OR month.......... 而且如果下一个月没有当前day的话, 你就不能移动mo ...