zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    【Demo 0062】文件遍历
    【Demo 0068】获取分区信息
    【Demo 0060】记录个人信息
    【Demo 0069】文件读写
    【Demo 0064】监控文件/目录变更
    【Demo 0067】文件类型关联图标
    【Demo 0065】获取被修改的文件/目录
    【Demo 0062】目录及文件基本操作
    【Demo 0061】打开与保存文件
    【Demo 0066】监控被变更文件/目录(完成端口)
  • 原文地址:https://www.cnblogs.com/gjq1126-web/p/11367586.html
Copyright © 2011-2022 走看看