struts动态加载多级菜单

本例子实现一个 从数据库中加载多级菜单的例子


数据库设计如下:

CREATE TABLE `menu` (
	`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '编号',
	`name` VARCHAR(250) NULL DEFAULT '0' COMMENT '菜单名称',
	`parent` INT(10) NULL DEFAULT '0' COMMENT '父菜单',
	`href` VARCHAR(500) NULL DEFAULT '0' COMMENT '菜单链接',
	`about` VARCHAR(500) NULL DEFAULT '0' COMMENT '描述',
	PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

其中 最重要的 就是 parent 列,这个指定了 该菜单的父菜单选项。

服务器处理时,将所有的菜单信息读取出来,放入 name 为 menus 的session 中。


在 jsp 页面上 多重循环去除值实现:


<!--1级分类开始-->
		<!--判断 如果 parent =0 的话,即是 一级分类-->
		<s:iterator value="#attr.menus.{?#this.parent==0}" id="c2">
			<div >
				<h3>
					[
					    一级菜单:<s:property value="#c2.name"/>
					]
				</h3>
				<ul  >
						<!--2级分类开始--><!--迭代判断 如果 当前 节点的 parent 等于上一个节点的id 即 该节点为上 节点的子目录-->
						<s:iterator value="#attr.menus.{?#this.parent==#c2.id}" id="c3">
						<li> 
							 二级菜单:<s:property value="#c3.name"/>
						</li>
						</s:iterator>
						<!--2级分类结束-->
				</ul> 
			</div>
			<!--1级分类结束-->
		</s:iterator>


如果  还有下一级目录的话,再嵌套一次循环即可。

最终效果如下:

[ 一级菜单:课程概要 ]

二级菜单:课程负责人
二级菜单:课程介绍
二级菜单:课程特色
二级菜单:政策措施
二级菜单:辐射共享
二级菜单:建设规划
二级菜单:教学大纲
二级菜单:教学条件
二级菜单:教学内容
二级菜单:教学方法与手段
二级菜单:课程考核
二级菜单:教学日历
二级菜单:教学效果
二级菜单:成果介绍
二级菜单:参考文献
二级菜单:制定教材
[ 一级菜单:模块资源 ]

二级菜单:第一章节
二级菜单:第二章节
二级菜单:第三章节
二级菜单:第四章节
二级菜单:第五章节
二级菜单:第六章节
二级菜单:第七章节
二级菜单:绪论
[ 一级菜单:拓展资源 ]

二级菜单:实验指导
二级菜单:案例库
二级菜单:试题库
二级菜单:演示实验
二级菜单:仿真实验
二级菜单:专题讲座库
二级菜单:专业知识检索系统
二级菜单:素材资源库
二级菜单:辅助工具
二级菜单:网络资源
二级菜单:常见问题
[ 一级菜单:课程团队 ]

二级菜单:团队负责人
二级菜单:团队成员
二级菜单:团队结构
二级菜单:教改项目
二级菜单:科研项目
二级菜单:发表论文
二级菜单:成果与奖励
二级菜单:主编教材
[ 一级菜单:教学互动 ]

[ 一级菜单:作业系统 ]

二级菜单:查看本期作业
二级菜单:查看已提交作业
二级菜单:学生提交作业
二级菜单:发布作业
二级菜单:查看所有作业
[ 一级菜单:测试系统 ]

[ 一级菜单:常见问题 ]




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值