1.扩展freemarker标签
public class MyFreeMarkerConfig extends FreeMarkerConfigurer {
@Override
public void afterPropertiesSet() throws IOException, TemplateException {
//继承之前的属性配置,这不不能省
super.afterPropertiesSet();
Configuration cfg = this.getConfiguration();
cfg.setSharedVariable("shiro", new ShiroTags());//注册shiro 标签
}
}
2.在springmvc.xml中将MyFreeMarkerConfig设置成当前环境中使用freemarker配置对象
<bean class="cn.wolfcode.rbac.shiro.conf.CrmFreeMarkerConfigurer">
<!-- 配置 freemarker 的文件编码 -->
<property name="defaultEncoding" value="UTF-8"/>
<!-- 配置 freemarker 寻找模板的路径 -->
<property name="templateLoaderPath" value="/WEB-INF/views/"/>
</bean>
class路径为自定义crmfreeMakerConfiguer的路径
3.使用shiro相关标签
<@shiro.hasRole name="admin">
<a href="#" class="btn btn-danger btn_batchDelete">
<span class="glyphicon glyphicon-trash"></span> 批量删除
</a>
</@shiro.hasRole>
1.判断用户是否有角色,如果有角色就可以使用批量删除功能
<@shiro.authenticated>
<@shiro.principal property="name" />
</@shiro.authenticated>
<@shiro.notAuthenticated>叩丁狼</@shiro.notAuthenticated>
2.如果是数据库里有的用户,显示他的名字,否则显示自定义的名字
<@shiro.hasAnyRoles name="admin,user,operator">Hello admin</@shiro.hasAnyRoles>
3.验证当前用户是否拥有这些角色中的任何一个,中间用,隔开
<@shiro.hasPermission name="department:delete">删除</@shiro.hasPermission>
4.判断当前用户是否拥有该权限