最近项目中添加一些按钮的显示和隐藏,让不同授权的用户登录,拥有不同的按钮权限。
设计流程:
定义一个按钮表,关联user的id存入mdm_address_add字符,按钮名称新增,用户登录通过该id找到mdm_address_add,取出存入session,页面通过thymeleaf获取session,校验是否包含有这段字符,如果有显示下面按钮,没有则隐藏。
后台取值存入session:
String srcList = tpUmsPowerService.getSrcList(tpUmsUsers);
session.setAttribute("srcList", srcList);//所有按钮权限
页面获取,校验
<th:block th:if="${session.srcList.indexOf('mdm_address_add') != -1}">
<button class="btn btn-default" data-toggle="modal" data-target="#myModal">
<i class="fa fa-plus"></i> 新增
</button>
</th:block>
页面indexOf():
校验一个字符串是否在另一组字符串中,返回索引,-1既是不存在的意思。
上面是项目中实际用的,可能难以理解,下面举个简单的th:block使用,三个按钮1和3为true,2是false,那么2中被th:block包含的代码段则不显示,效果如下图
<th:block th:if='${1==1}'>
<button class="btn btn-default" data-toggle="modal" data-target="#myModal">
<i class="fa fa-plus"></i> 新增1显示
</button>
</th:block>
<th:block th:if='${1!=1}'>
<button class="btn btn-default" data-toggle="modal" data-target="#myModal">
<i class="fa fa-plus"></i> 新增2不显示
</button>
</th:block>
<th:block th:if='${1==1}'>
<button class="btn btn-default" data-toggle="modal" data-target="#myModal">
<i class="fa fa-plus"></i> 新增3显示
</button>
</th:block>