一下结果皆为百度所得:
使用方式
<shiro:hasAnyPermission name="statement:list,cinema:list,filter:list">
修改方式:
修改shiro-web.jar 目录shiro-web-1.2.4.jar\META-INF\shiro.tld
简易使用winrar右键打开压缩包可直接更新替换压缩文件
taglib内添加tab
<tag>
<name>hasAnyPermission</name>
<tag-class>cn.xx.xx.util.HasAnyPermissionTag</tag-class>
<body-content>JSP</body-content>
<description>Displays body content only if the current Subject (user)
'has' (implies) the specified permission (i.e the user has the specified ability).
</description>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
tag-class可修改为自己的项目路径,不嫌麻烦可以自己编译一下
HasAnyPermissionTag:
import org.apache.shiro.subject.Subject; import org.apache.shiro.web.tags.PermissionTag; /** * 扩展标签,具有列出权限中的任意一个 * @author yehuan * */ public class HasAnyPermissionTag extends PermissionTag { /** * */ private static final long serialVersionUID = 1L; public HasAnyPermissionTag() { } protected boolean showTagBody(String permissions) { boolean hasAnyPermissions = false; Subject subject = getSubject(); if (subject != null) { for (String role : permissions.split(",")) { if (subject.isPermitted(role.trim())) { hasAnyPermissions = true; break; } } } return hasAnyPermissions; } }