zoukankan      html  css  js  c++  java
  • SpringBoot:整合layui、退出功能

    1、访问Layui官网(https://www.layui.com/),下载模板

    (1)以后台作为示例来进行整合

     (2)下载代码

    (3)在项目中导入静态资源

    注意:要将静态资源在shiro的过滤器中设置为不过滤 

    2、修改下载的layui代码

    <!DOCTYPE html>
    <html  xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.thymeleaf.org/thymeleaf-extras-shiro">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
        <title>SpringBoot整合layui</title>
        <link rel="stylesheet" th:href="@{/layui/css/layui.css}">
    </head>
    <body class="layui-layout-body">
    <div class="layui-layout layui-layout-admin">
        <div class="layui-header">
            <div class="layui-logo">layui 后台布局</div>
            <!-- 头部区域(可配合layui已有的水平导航) -->
            <ul class="layui-nav layui-layout-left">
                <li class="layui-nav-item"><a href="">控制台</a></li>
                <li class="layui-nav-item"><a href="">商品管理</a></li>
                <li class="layui-nav-item"><a href="">用户</a></li>
                <li class="layui-nav-item">
                    <a href="javascript:;">其它系统</a>
                    <dl class="layui-nav-child">
                        <dd><a href="">邮件管理</a></dd>
                        <dd><a href="">消息管理</a></dd>
                        <dd><a href="">授权管理</a></dd>
                    </dl>
                </li>
            </ul>
            < class="layui-nav layui-layout-right">
            <shiro:user>
                <li class="layui-nav-item">
                    <a href="javascript:;">
                        <img src="http://t.cn/RCzsdCq" class="layui-nav-img">
                        贤心
                    </a>
                    <dl class="layui-nav-child">
                        <dd><a href="">基本资料</a></dd>
                        <dd><a href="">安全设置</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item"><a href="">退了</a></li>
            </shiro:user>
            <shiro:guest>
                <label style="color: white; text-decoration: underline" onclick="javascript:location.href='login.html'">登录</label>
            </shiro:guest>
            </ul>
        </div>
    
        <div class="layui-side layui-bg-black">
            <div class="layui-side-scroll">
                <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
                <ul class="layui-nav layui-nav-tree"  lay-filter="test">
                    <li class="layui-nav-item layui-nav-itemed">
                        <a class="" href="javascript:;">用户</a>
                        <dl class="layui-nav-child">
                            <dd><a href="javascript:;">学生</a></dd>
                            <dd><a href="javascript:;">教师</a></dd>
                            <dd><a href="javascript:;">管理员</a></dd>
                        </dl>
                    </li>
                    <li class="layui-nav-item">
                        <a href="javascript:;">学生</a>
                        <dl class="layui-nav-child">
                            <shiro:hasPermission name="stu_select"><dd><a href="javascript:;">查询</a></dd></shiro:hasPermission>
                        </dl>
    
                        <a href="javascript:;">教师</a>
                        <dl class="layui-nav-child">
                            <shiro:hasPermission name="tea_select"><dd><a href="javascript:;">查询</a></dd></shiro:hasPermission>
                            <shiro:hasPermission name="tea_delete"><dd><a href="javascript:;">删除</a></dd></shiro:hasPermission>
                            <shiro:hasPermission name="tea_update"><dd><a href="javascript:;">更新</a></dd></shiro:hasPermission>
                        </dl>
    
    
                        <a href="javascript:;">管理员</a>
                        <dl class="layui-nav-child">
                            <shiro:hasPermission name="man_select"><dd><a href="javascript:;">查询</a></dd></shiro:hasPermission>
                            <shiro:hasPermission name="man_delete"><dd><a href="javascript:;">删除</a></dd></shiro:hasPermission>
                            <shiro:hasPermission name="man_update"><dd><a href="javascript:;">更新</a></dd></shiro:hasPermission>
                            <shiro:hasPermission name="man_add"><dd><a href="javascript:;">查询</a></dd></shiro:hasPermission>
                        </dl>
                    </li>
                </ul>
            </div>
        </div>
    
        <div class="layui-body">
            <!-- 内容主体区域 -->
            <div style="padding: 15px;">内容主体区域</div>
        </div>
    
        <div class="layui-footer">
            <!-- 底部固定区域 -->
            © layui.com - 底部固定区域
        </div>
    </div>
    <script th:src="@{/layui/layui.js}"></script>
    <script>
        //JavaScript代码区域
        layui.use('element', function(){
            var element = layui.element;
        });
    </script>
    </body>
    </html>

    引入thymleaf与shiro(此次演示是结合shrio的)

    添加shiro的标签,根据用户身份确定在页面要显示的用户权限,根据是否是登录用户确定页面的显示内容

    3、测试

    (1)学生

     (2)教师

     (3)管理员

     (4)游客访问与登录用户访问

    游客访问:

     用户访问:

    4、退出功能

    (1)在shiro过滤器中进行配置

     @Bean//过滤器
        public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultSecurityManager securityManager) {
            ShiroFilterFactoryBean filter = new ShiroFilterFactoryBean();
            //过滤器是shiro执行权限的核心,进行认证和授权是需要SecurityManager的
            filter.setSecurityManager(securityManager);
            //设置shiro的拦截规则
            Map<String, String> filterMap = new HashMap<>();
            //user:使用remberme的用户可访问
            //perms:对应权限可访问
            //role:对应的角色才能访问
            filterMap.put("/exit", "logout");
            filterMap.put("/", "anon");//anon表示不拦截(匿名用户可访问)
            filterMap.put("/login.html", "anon");
            filterMap.put("/regist.html", "anon");
            filterMap.put("/user/login", "anon");
            filterMap.put("/user/regist", "anon");
            filterMap.put("/static/**", "anon");
            filterMap.put("/layui/**", "anon");
            filterMap.put("/static/layui/css", "anon");
            filterMap.put("/static/layui/js", "anon");
            filterMap.put("/index.html", "anon");
            filterMap.put("/test.html", "anon");
            filterMap.put("/**", "authc");//authc表示认证用户可访问
    
            filter.setFilterChainDefinitionMap(filterMap);
            filter.setLoginUrl("/login.html");
            //设置未授权访问的页面
            filter.setUnauthorizedUrl("/login.html");
            return filter;
        }

    (2)在页面的退出按钮上跳转到退出路径

         <li class="layui-nav-item"><a href="/exit">退了</a></li>

    这个过程是不需要书写controller层的

  • 相关阅读:
    虚函数和纯虚函数
    函数指针
    const成员函数
    随笔
    Myeclipse/eclipse的Web project改写成Maven项目
    Maven项目配置不接文件名
    Tomcat需要更改三个端口,才能在一台机器上搭载多个tomcat
    maven错误:Project configuration is not up-to-date with pom.xml
    Failed to execute goal on project MakeFriends: Could not resolve dependencie The POM for .chengpai.jtd:jtd-service-api:jar:1.0-SNAPSHOT is missing, no dependency information available
    编译器问题:运行maven,报错-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13734342.html
Copyright © 2011-2022 走看看