thymeleaf之菜单树
Posted gjq1126-web
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thymeleaf之菜单树相关的知识,希望对你有一定的参考价值。
1.对象创建:
package com.demo.Model; import lombok.Getter; import lombok.Setter; import lombok.ToString; import java.io.Serializable; import java.util.List; @Getter @Setter @ToString public class PriMenu implements Serializable private static final long serialVersionUID = -7458870847408160287L; private Long id; private Long pId; // 父节点id private String menuName;// 菜单名称 private String menuUrl;// 访问地址 private String priLevel;// 菜单层级 private String priPath;// 权限菜单层级路径 private String status; // 状态 0可用 1禁用 private Long creatorId; // 创建人id private String createTime; private List<PriMenu> sonList; public PriMenu()
2.对象初始化
package com.demo.Common.constants; import com.demo.Model.PriMenu; import java.util.ArrayList; import java.util.List; public class MenuDemo //菜单假数据 public static List<PriMenu> Initialization() List<PriMenu> list = new ArrayList<PriMenu>(); PriMenu priMenu1 = new PriMenu(); priMenu1.setMenuName("系统管理"); List<PriMenu> list1 = new ArrayList<PriMenu>(); PriMenu priMenuSon1= new PriMenu(); priMenuSon1.setMenuName("菜单管理"); PriMenu priMenuSon2= new PriMenu(); priMenuSon2.setMenuName("角色管理"); PriMenu priMenuSon3= new PriMenu(); priMenuSon3.setMenuName("权限管理"); PriMenu priMenuSon4= new PriMenu(); priMenuSon4.setMenuName("用户管理"); list1.add(priMenuSon1); list1.add(priMenuSon2); list1.add(priMenuSon3); list1.add(priMenuSon4); priMenu1.setSonList(list1); list.add(priMenu1); PriMenu priMenu2 = new PriMenu(); priMenu2.setMenuName("列表管理"); List<PriMenu> list2 = new ArrayList<PriMenu>(); PriMenu priMenuSon5= new PriMenu(); priMenuSon5.setMenuName("借款列表"); PriMenu priMenuSon6= new PriMenu(); priMenuSon6.setMenuName("日志管理"); list2.add(priMenuSon5); list2.add(priMenuSon6); priMenu2.setSonList(list2); list.add(priMenu2); PriMenu priMenu3 = new PriMenu(); priMenu3.setMenuName("功能管理"); List<PriMenu> list3 = new ArrayList<PriMenu>(); PriMenu priMenuSon7= new PriMenu(); priMenuSon7.setMenuName("发送邮件"); priMenuSon7.setMenuUrl("toUEditor.jhtml"); PriMenu priMenuSon8= new PriMenu(); priMenuSon8.setMenuName("表格导出"); list3.add(priMenuSon7); list3.add(priMenuSon8); priMenu3.setSonList(list3); list.add(priMenu3); return list;
3.Controller
package com.demo.Controller; import com.demo.Common.constants.MenuDemo; import com.demo.Model.PriMenu; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Slf4j @Controller public class ModelAndViewController @RequestMapping("toMain.jhtml") public String mainView(HttpServletRequest request, ModelMap model) log.info("跳转到后台首页"); Map<String, Object> param = new HashMap<String, Object>(); List<PriMenu> list = new ArrayList<PriMenu>(); list=MenuDemo.Initialization(); model.addAttribute("menus", list); return "pri/main";
4.thymeleaf的使用(主要代码)
<li class="layui-nav-item layui-this" th:each="menu:$menus"> <a href="javascript:;" th:text="$menu.menuName">系统管理</a> <ul class="layui-nav-child" style="background: #2b2e37;"> <li th:each="child:$menu.sonList"> <a th:if="$#lists.isEmpty(child.sonList)" th:text="$child.menuName" th:href="@‘/‘+$child.menuUrl" href="javascript:;" style="margin-left: 20px;">用户管理</a> </li> </ul> </li>
补充:需要配置的部分(只要引入依赖 pom.xml 自动加载)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>3.1.1</version> </dependency>
以上是关于thymeleaf之菜单树的主要内容,如果未能解决你的问题,请参考以下文章