当前课程知识点:软件开发实训--动态网站开发 > 11 内容管理实现 > 11.7内容分类树实现 > 11.7.1内容分类树实现
同学
你好
欢迎回到软件开发实训课堂
上节课咱们把内容的列表已经实现完成了
也包括他的检索
那么我们这节课来看一下
在编辑页面里边
它的分类
这个位置该怎么处理
我们看一下在我们显示界面时
要想显示所有的分类
我们首先得把它查出来
在内容控制器里找到我们的编辑方法
我们去查找我们的分类
为了查找分类
我们必须要让spring给我们注入分类的
服务
通过分类服务
我们去查找所有的分类
但是查找的时候
实际上我们只需要通过空的父节点去查询
就可以了
然后把它放到我们的模型里边
然后起个名字我们就叫做types
这样我们的界面就可以找到了
回到我们的内容编辑页
在这里
我们来输出它
因为我们的分类是一层一层的树形结构
所以我们在这里一样的用碎片来处理
我们在前面讲分类数的时候已经讲过了
这里我们重新再来实现一次
fragment
我们这棵树是需要参数的
传进来的参数就叫做dates
而我们输出
注意这次输出的是option
对他进行循环
循环的对象是datas
中间变量我们就用d就可以了
显示我们就显示它的名称
而它的值我们就使用ID就可以了
这和我们上面的匹配
这样我们就有了第一层
然后我们用同样的方式写出第二层
第二层我们只需要去调用它就可以了
这里我们看一下出了一个问题
因为我们循环的用的是option
所以就造成我们找不着了
这里边还用th:block
要想我们d能够被找到
我们必须把这两条语句都放到循环里去
否则的话在下面就找不到d了
也就是这个block
他要能看到d
把这个循环删掉
千万记住了
这样我们在这里就能看到这个d了
d点sublists什么时候做这个循环就必须是他列表
子节点是存在的
如果存在
我们就执行调用
好
现在我们在这里来调用它
replace我们来调用
tree
而我们的数据是types
注意这和我们model里存的要对应
这样我们把分类这块就做好了
我们来界面上看一下
首先我们登录
我们点击内容添加
在这里我们看一下
这个错误是说我们处理模板时发生的
而且这个模板就是我们修改的模板
往最下面走
我们来看一下它有没有出现
好
说是我们调用this:tree的时候
它不存在
或者是不可访问
这里边后面应该是两个冒号
不是一个要注意
是两个冒号
这个this可以省略
就说明我们的碎片是在当前文件的
修改后我们再来刷新看一下
tid没有被找到
我们这个方法返回的是一个list
contentType类型的
所以它不可能是一个字符串
我们再来看一下它为什么会是报成了字符串
这样的东西
看一下说属性tid不能被找到
在哪里
在类型为
string的数据上找不着
tid我们看一下
为什么它会是在string上去找tid
这里面d点sublist
给它加上一个
$大括号
把它包起来
改了类我们就需要登录
好
我们这两个重叠了
我们来把它编辑这块编写一下
格式给他改一下
很乱
首先我们在form这块加一个
divclass等于col
而且让它占满整个行
把表单里边的所有内容给它围起来
因为我们表单的所有的东西都已经是行了
现在我们再次刷新
它就分开了
给分类加上样式
分类加上样式
class等于form-control
虽然我们的分类出来了
而且我们是有层级的
这里边并没有分出来
比如说通知内容应该是在下一级
我们可以在这里给它加上一个
同样是级别数据
加上level
调用的时候
加上level
那么刚开始的level
我们用零表示
当level出现了多个时
我们在这里可以去循环的让它输出一个空
我们说如果说
我们的空格在这里来计算他
看一下
我们要生成多个空格
用th:if
但是th:if它的中间变量
好
我们来看一下
怎么处理呢
我们找到咱们用的Utils类
Utiles类里边我们给它加上一个方法
这个方法我们来生成对应的空格
numstr
stringS然后int sum
生成多少个字符串
把它连起来
所以我们这里面直接直接去循环它
i从零开始
小于等于sum
这样会多出一个来
我们可以直接小于就行
正好数量就是sum个i++
用一个结果字符串
一加等于把S不停地连接完成后return re
这样我们就会生成字符串了
根据我们这个数字来生成这个字符串
好
nums我们就需要他
现在我们来调用它
在这里引用utiles.numstring
空格多少遍呢
lever
保存后我们来刷新界面
好
需要重新登录
因为我们改过类了
所以要登录
这里面我们把level在引用的时候
一定也要放在大括号里
这是因为你不放在大括号
他不做
计算
我们来看一下
没有做计算
我们来做一个减号
level这里
加上一个一
或者乘个二
我们用乘法乘个二
level从一开始计算
别从零了零要乘上去的话
永远都是零了
修改完成后我们再次刷新界面
加到了后面
我们应该加在前面加上空格
把它加在前面去
可以看到他加的比较少
我们可以把2×4
每次缩进去四个
这样四个空格就能够把它显现出来它的结构
这空格被忽略了
我们来看一下
用减号
好
这样的话用减号是可以出现的
如果你想让第一层不需要
那么就在这里判断一下
如果是一
如果level
等于1就不要加
不要去
变1那么在哪里改
在这里加也可以在外围加就我们的这个方法里去加就可以
把它改为一
从一开始计算
然后输出sum
这样的话是少了一个是吧
不如把它直接判断
sum等于1
return一个
Sreturn空就行了
不管你怎么样
只要是第一级
他不做任何输出
这样我们就有了层次关系了
因为他忽略空格
我们就用减号来代替空格
看到它的缩进
好
这就是有关分类它的层级
我们来测一下
看看能使用不
你加上标题
点击保存后保存成功
我们来看一下内容管理里边
他已经进来了
好
这就是有关分类
它的应用在下拉框里边的使用
好
这就是表单中分类的处理
就讲到这里
我们下节课再见
-1.1课程介绍
--1.1.3随堂测试
-1.2网站需求分析
--1.2.4随堂测试
-1.3网站首页分析
--1.3.3随堂测试
-1.4导航菜单分析
--1.4.3随堂测试
-1.5内容区域分析
--1.5.3随堂测试
-1.6内容副页面分析
-1.7编写需求文档
-2.1后端页面总体分析
--2.1.3随堂测试
-2.2用户管理功能设计
--2.2.3随堂测试
-2.3内容与分类功能分析
--2.3.3随堂测试
-2.4网站配置功能设计
--2.4.4随堂测试
-2.5数据库及表结构分析
-总体设计文档
-3.1前台模板约定
--3.1.3随堂测试
-3.2网站配置接口设计
--3.2.3随堂测试
-3.3菜单接口设计
--3.3.3随堂测试
-3.4内容接口设计
--3.4.3随堂测试
-3.5幻灯片接口设计
--3.5.3随堂测试
-补充设计文档
-4.1用户管理功能设计
--4.1.3随堂测试
-4.2菜单管理功能设计
--4.2.3随堂测试
-4.3内容管理功能设计
--4.3.3随堂测试
-4.4网站配置信息设计
--4.4.3随堂测试
-完成设计文档
-4.6随堂测试
-5.1开发环境搭建
--5.1.2随堂测试
-5.2Web前端环境搭建
-5.3创建用户实体
--5.3.2随堂测试
-5.4用户实体表创建与初始化
--5.4.2随堂测试
-5.5用户数据访问接口实现
--5.5.2随堂测试
-5.6环境搭建问题
-6.1用户服务层接口实现
--6.1.2随堂测试
-6.2用户列表和编辑控制器实现
--6.2.2随堂测试
-6.3用户存储和删除控制器实现
-6.4用户添加、编辑界面实现
-6.5用户管理添加用户调试
-7.1用户查询模板实现
--7.1.2随堂测试
-7.2用户信息编辑的实现
-7.3单个用户删除实现
-7.4多个用户删除实现
-8.1用户列表分页基本实现
-8.2用户列表查询结果分页实现
-8.3通用日期处理
-8.4整型日期处理
--8.4.2随堂测试
-8.5枚举数据的应用
-9.1登录逻辑实现
--9.1.2随堂测试
-9.2登录界面及流程调试
--9.2.2随堂测试
-9.3管理主界面实现
--9.3.2随堂测试
-9.4授权验证拦截器实现
--9.4.2随堂测试
-9.5拦截器调试
-10.1分类接口实现
-10.2分类添加、编辑实现
-10.3分类树结构实现
-10.4分类删除实现
--10.4.2随堂测试
-11.1内容实体定义
-11.2相关接口定义
-11.3服务接口实现
-11.4内容添加、编辑模板实现
-11.5内容添加、编辑控制器实现
-11.6内容检索页面实现
-11.7内容分类树实现
-12.1修改UEditor相关问题
-12.2整合UEditor到内容编辑界面
-12.3UEditor图片对话框应用
-12.4文件上传问题处理
-13.1网站配置相关类实现
-13.2网站配置界面模板实现
-13.3网站配置调试
-14.1网站首页布局实现
-14.2菜单Vue组件实现
--14.2.2随堂测试
-14.3幻灯片Vue组件实现
-14.4滚动Vue组件实现
--14.4.2随堂测试
-14.5滚动接口实现
-14.6滚动接口调试
-14.7幻灯片接口实现
-15.1首页区域实现
-15.2首页内容脚本实现
-15.3首页完善
-15.4Vue组件放入单文件
-15.5详细页面实现
-16.1网站测试介绍
-16.2功能测试
-16.3打包发布
-16.4部署运行
--16.4.2随堂测试