1js和css的下载和引入

下载地址: http://www.jstree.com/,
api:https://www.jstree.com/api/#/?q=(
事件监听:https://www.jstree.com/api/#/?q=.jstree%20Event&f=deselect_all.jstree

翻译好的参考:https://blog.csdn.net/m0_37355951/article/details/75268296

https://blog.csdn.net/qq_24472595/article/details/70053863#%E6%8F%92%E4%BB%B6

下载后放到项目中
需要引入两个文件:
<script type="text/javascript" src="../resource/jstree/jstree.min.js"></script>
<link href="../resource/jstree/themes/default/style.min.css" rel="stylesheet">

2前端树形结构实例

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>详情</title><script type="text/javascript" src="../resource/js/bootstrap-select.min.js"></script><script type="text/javascript" src="../resource/jstree/jstree.min.js"></script><link href="../resource/jstree/themes/default/style.min.css" rel="stylesheet">
</head><script language="javascript">function openId(){//获取选中的节点var jstree = $("#using_json").jstree("get_checked");alert(jstree);$("#using_json").jstree(JSON.stringify($("#treecontent").val()));}$(function(){$("#using_json").jstree({"checkbox": {"keep_selected_style": false},"core": {"data": [{"icon": "none","id": 2,"state": {"opened": true,"selected": true},"text": "node2"}, {"children": [{"icon": "none","id": 1,"text": "node1"}],"icon": "none","id": 3,"text": "node3","state": {"opened": true,"selected": true},}]},"plugins": ["wholerow", "checkbox"]})});
</script><body style="background-color: #ffffff;">
<div><div id="using_json"></div><input type="button" value="打开选择的id" onclick="openId();"><input type="hidden" id="treecontent"  name="treecontent" value="${treecontent}"/>
</div>
</body></html>

点击按钮 效果如下图:

3通过后台准备数据,并且形成树形结构的实例

拼接json需要的dto

public  class DtoService {public OrganTreeCoreDto getTreeDto() {OrganTreeDto organTreeDto = new OrganTreeDto();Checkbox checkbox = new Checkbox();checkbox.setKeep_selected_style(false);String[] pp = new String[2];pp[0]="wholerow";pp[1]="checkbox";TreeData treeData = new TreeData();List<OrganTreeNode> aa = new ArrayList<OrganTreeNode>();OrganTreeNode node2 = new OrganTreeNode();node2.setIcon("none");node2.setId(2);node2.setText("node2");NodeState state = new NodeState();state.setOpened(true);state.setSelected(true);node2.setState(state);aa.add(node2);OrganTreeNode node3 = new OrganTreeNode();node3.setIcon("none");node3.setId(3);node3.setText("node3");List<OrganTreeNode> node1child = new ArrayList<OrganTreeNode>();OrganTreeNode node1 = new OrganTreeNode();node1.setIcon("none");node1.setId(1);node1.setText("node1");node1child.add(node1);node3.setChildren(node1child);aa.add(node3);organTreeDto.setData(aa);OrganTreeCoreDto organTreeCoreDto = new OrganTreeCoreDto();organTreeCoreDto.setCore(organTreeDto);organTreeCoreDto.setPlugins(pp);organTreeCoreDto.setCheckbox(checkbox);String json = JSON.toJSONString(organTreeCoreDto);System.out.println(json);return organTreeCoreDto;}
}
public class OrganTreeCoreDto {private OrganTreeDto core;private Checkbox checkbox;private  String[] plugins;public OrganTreeDto getCore() {return core;}public void setCore(OrganTreeDto core) {this.core = core;}public Checkbox getCheckbox() {return checkbox;}public void setCheckbox(Checkbox checkbox) {this.checkbox = checkbox;}public String[] getPlugins() {return plugins;}public void setPlugins(String[] plugins) {this.plugins = plugins;}}public class Checkbox{boolean keep_selected_style;public boolean isKeep_selected_style() {return keep_selected_style;}public void setKeep_selected_style(boolean keep_selected_style) {this.keep_selected_style = keep_selected_style;}
}public class OrganTreeDto {private  List<OrganTreeNode> data;public List<OrganTreeNode> getData() {return data;}public void setData(List<OrganTreeNode> data) {this.data = data;}
}public   class OrganTreeNode {int id;String text;String icon;List<OrganTreeNode> children;NodeState state;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getText() {return text;}public void setText(String text) {this.text = text;}public String getIcon() {return icon;}public void setIcon(String icon) {this.icon = icon;}public List<OrganTreeNode> getChildren() {return children;}public void setChildren(List<OrganTreeNode> children) {this.children = children;}public NodeState getState() {return state;}public void setState(NodeState state) {this.state = state;}}public class NodeState{boolean opened;boolean selected;public boolean isOpened() {return opened;}public void setOpened(boolean opened) {this.opened = opened;}public boolean isSelected() {return selected;}public void setSelected(boolean selected) {this.selected = selected;}}public class TreeData{List<OrganTreeNode> data;public List<OrganTreeNode> getData() {return data;} public void setData(List<OrganTreeNode> data) {this.data = data;}}

controller中返回树对应的json

 @RequestMapping(value="/trees/testtree.action")public String testtree(ModelMap modelMap,ServletResponse response ){String s = JSON.toJSONString(new DtoService().getTreeDto());modelMap.put("treecontent", s);return "reportset/treetest";}

treetest.jsp页面中的处理:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>详情</title><link href="../resource/css/font-awesome.css?v=4.4.0" rel="stylesheet"><link href="../resource/sweetalert/sweetalert.css" rel="stylesheet"><link href="../resource/css/awesome-bootstrap-checkbox.css" rel="stylesheet"><script type="text/javascript" src="../fe-res/js/jquery.min.js"></script><script type="text/javascript" src="../fe-res/js/echarts.min.js"></script><script type="text/javascript" src="../resource/js/bootstrap.js"></script><script type="text/javascript" src="../resource/js/bootstrap.min.js"></script><script type="text/javascript" src="../resource/js/bootstrap-select.js"></script><script type="text/javascript" src="../resource/js/bootstrap-select.min.js"></script><script type="text/javascript" src="../resource/jstree/jstree.min.js"></script>
<link href="../resource/jstree/themes/default/style.min.css" rel="stylesheet">
</head><script language="javascript">function openId(){//获取选中的节点var nodes=$("#using_json").jstree("get_checked");alert(nodes);}$(function(){var tree = $("#treecontent").val();//由JSON字符串转换为JSON对象,才能展示成树形结构var obj = JSON.parse(tree);$("#using_json").jstree(obj);$('#using_json').on("changed.jstree", function (e, data) {console.log(data.selected);var nodes=$("#using_json").jstree("get_checked");alert(nodes);});});
</script><body style="background-color: #ffffff;">
<div><div id="using_json"></div><input type="button" value="打开选择的id" onclick="openId();"><!--注意因为返回的json中含有引号等,这里需要使用<c:out标签--><input type="hidden" id="treecontent"  name="treecontent" value="<c:out value="${treecontent}"></c:out>"/>
</div></body>
</html>

4 jsTree隐式组件的使用-以搜索为例

首先需要说明这个组件是隐式的,就是说只有你声明了,才能使用。
声明:就是在用json组装树形结构的时候,需要声明使用该插件
String[] pp = new String[3];
pp[0]="checkbox";
pp[1]="search";// 这里声明 搜索的插件功能
pp[2]="wholerow";
organTreeCoreDto.setPlugins(pp);

Checkbox checkbox = new Checkbox();
checkbox.setKeep_selected_style(false);
organTreeCoreDto.setCheckbox(checkbox

2使用
controller内容
@RequestMapping(value="/reportset/testtree.action")
public String testtree(ModelMap modelMap,ServletResponse response ){
    String s = JSON.toJSONString(treeService.getOrganTree());
    modelMap.put("treecontent", s);
    return "reportset/treetest-exp";
}

树形结构所在jsp页面
引入文件
    <script type="text/javascript" src="../resource/jstree/jstree.min.js"></script>
    <link href="../resource/jstree/themes/default/style.min.css" rel="stylesheet">

<div id="pdailog" style="display:none;" >
    <div id="tree"  >
        <input type="text" value="" class="bi-ipt" id="organ_name" style="width: 300px"  placeholder="请输入组织名称或用户名称进行模糊搜索">
        <div id="treecontents"></div>
        <div>
            <button id="pdailog-cancel" class="btn btn-slight">确认</button>
        </div>
    </div>
</div>
 <input type="hidden" id="treecontent"  name="treecontent" value="<c:out value="${treecontent}"></c:out>"/>

<script language="javascript">
    $(function(){
        // 树形结构的初始化
        var tree = $("#treecontent").val();
        var obj = JSON.parse(tree); //由JSON字符串转换为JSON对象
        $("#treecontents").jstree(obj);

$('#treecontents').on("changed.jstree", function (e, data) {
            console.log(data.selected);
            var nodes=$("#treecontents").jstree("get_checked");
            $("#organid").val(nodes);
        });

// 输入框绑定搜索事件
        $('#organ_name').keyup(function () {
            var v = $('#organ_name').val();
            $('#treecontents').jstree(true).search(v);
        });

});
</script>

效果如下图:

jstree树形结构的使用相关推荐

  1. jstree树形结构Api

    1. jsTree 核心功能(core functionality) 1.1. $.jstree 包含所有 jstree 相关的函数和变量,包括用于创建.访问.维护实例的类和方法. + 1.2. $. ...

  2. SpringBoot+JsTree实现在编辑时能选择树形结构并获取选中的ID

    场景 SpringBoot+Jquery+jsTree实现页面树型结构: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90897 ...

  3. php 实现树状组织图插件,使用jstree插件实现树形结构

    jstree的CDNJS地址的相关链接: (1):js (2):css jstree的简单使用 1:引入css 2:引入js 3:html内容: 父节点1 子节点1 子节点2 父节点2 子节点3 子节 ...

  4. 使用ztree.js,受益一生,十分钟学会使用tree树形结构插件

    看到ztree.js,这几个字眼,毋庸置疑,那肯定就是tree树形结构了,曾经的swing年代有jtree,后来jquery年代有jstree和treeview,虽然我没写过,但是我见过,一些小功能做 ...

  5. 前端页面实现树形结构

    树形结构的实现 第一步导入js 下载地址:https://codeload.github.com/vakata/jstree/legacy.zip/3.3.4 记得引到用到的页面 HTML代码 < ...

  6. 树形结构在关系数据库中的设计

    在程序设计中,经常以树形结构表示数据的层次关系,如菜单的结构.商品的分类等. 这样的层次结构在关系数据库中难以直观地表示.常见的一种做法是用一个字段指向上级节点来表示记录的上下级关系. fid pid ...

  7. html树状结构怎么展开,纯css实现树形结构

    纯css实现属性结构 **css实现属性结构的思路是利用伪类实现树形结构连接线,如果想实现点击展开和收 缩以及复选框效果还得配合js来实现.其实展开和收缩就是一个点击元素其子元素隐藏 和显示的切换.* ...

  8. 使用树形结构保存实体

    阅读原文请访问我的博客BrightLoong's Blog 之前在项目需要实现一个功能--将xml文件映射成实体,然后对映射的实体进行逻辑处理,最后保存到数据库中:由于xml结构的数据是结构化的数据, ...

  9. 在winform中从外部拖动节点到树形结构(treeview和listview相互拖动)(一)

    最近一个项目要用到从listview向treeview拖动item,达到从外部拖动图标成为树形结构的一部分,通过查阅资料总结了一些实现方式,分享给大家.这是winform中的例子. 在进行拖放操作之前 ...

最新文章

  1. 求二叉树中第K层结点的个数
  2. appendChild append insertBefore prepend
  3. php api 20121113,php添加gd
  4. 160个Crackme029
  5. 一次性动态绑定多个droplistdown
  6. 灰度测试试验流量“洗牌”
  7. cmake,CMakeLists.txt,make,makefile的关系
  8. python显示中文文件内容_Python实现的json文件读取及中文乱码显示问题解决方法...
  9. 三个数差的平方公式推导过程_万有引力常量反复测量不“常”咋回事?新常量公式诠释引力本质...
  10. eclipse 配置Maven问题解决办法:新建maven工程时报错:Could not resolve archetype org.apache.maven.archetypes ....
  11. c3p0-0.9.1.2.jar
  12. Spring :事务使用的注意事项
  13. 测试基础-03-用例设计方法:案例讲解
  14. 第4讲 李群与李代数
  15. PostgreSQL 创建分区表(转 仅供自己参考)
  16. 梦笔记2021-03-05
  17. linux佳入门教程,命令行基础工具的更佳替代品
  18. 日紫白飞星算法_年、月、日、时紫白飞星法!
  19. 小组取什么名字好_学习小组起什么名字比较好
  20. 我的挣扎 与 TBtools 的开发

热门文章

  1. 书法练字帖纸——井字格为什么受到学生青睐
  2. 需求结构化:Response(响应)模式
  3. 计算机网络教程-现代计算机网络(1)
  4. 视频教程-数据分析与数据挖掘导论(R语言)-MySQL
  5. airtestide 下载后打不开_AirtestIDE详解
  6. 支付清结算之基本概念和入门
  7. Brute-Force算法
  8. 浅谈电子配线架智能布线管理系统(一)
  9. 过年帮同学做Windows 7/8系统的心得
  10. 小米机顶盒怎么看电视直播?可以看电视直播的各种好用软件推荐