概念:
一个依靠 jQuery 实现的多功能 “树插件”。
实现步骤:
1.引入外部css,js脚本
2.配置文件:在需要添加ztree树的jsp页面中添加脚本
var setting = {
check: {
enable: true
},
data: {
simpleData: {
enable: true
}
}
};
3.zTree初始化的节点数据
//这里相当于在拿后台传来的数据,后台在传数据的时候,属性名要对应上
var zNodes =${zTreeJson}
4.zTree初始化函数
$(document).ready(function(){
$.fn.zTree.init($("#htZtree"), setting, zNodes);
var zTreeObj = $.fn.zTree.getZTreeObj("htZtree");
zTreeObj.expandAll(true); //展开所有树节点
});
Json
Json是一种轻量级的数据交换格式。
json的三种基本数据格式
1.{id:‘123’,name:‘xuning’,age:‘18’}
2.[“value1”,”value2”…]
3.[{id:’123’,name:’aaa’},{id:111,name:bbb}…]
由于在后台使用list集合进行数据的封装,所以需要将list集合转换成zTree树所需要的格式,这里转换成json格式的数据。而list集合转换成json格式的数据需要通过jackson。Jsckson处理json数据的方式有三种,这里采用树模型来处理。
Jackson的依赖:
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8.1</version>
</dependency>
代码://模块
@RequestMapping(value="/tomodule")
public String toModule(String roleId,Model model) throws Exception{
//准备数据
List<Module> moduleList = moduleService.findAll();
//准备已经勾选的模块信息--根据角色信息
List<String> checkModule = moduleService.findModuleByRoleId(roleId);
for(Module module:moduleList){
if(checkModule.contains(module.getModuleId())){
module.setChecked(true);
}
}
//转换成json格式
ObjectMapper object = new ObjectMapper();
String zTreeJson=object.writeValueAsString(moduleList);
//数据填充
model.addAttribute("zTreeJson", zTreeJson);
model.addAttribute("roleId", roleId);
return "/sysadmin/role/jRoleModule";
}
@RequestMapping(value="/saveRoleModule")
public String saveRoleModule(String roleId,String moduleIds){
//保存角色的模块信息--role_module_p
roleService.saveRoleModule(moduleIds, roleId);
return "redirect:/sysadmin/role/list";
}
<!-- 批量插入 -->
<insert id="saveRoleModule">
insert into role_module_p (module_id,role_id)
values
<foreach collection="moduleIds" item="moduleId" separator=",">
(#{moduleId},#{roleId})
</foreach>
</insert>
Jackson
Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。
Jackson有三种方式处理json数据。这里介绍一种树模型处理
树模型 -
准备JSON文件在内存里以树形式表示。
ObjectMapper构建JsonNode节点树。这是最灵活的方法。它类似于XML的DOM解析器。