1.建tld文件 auth.tld
<taglib>
<tlib-version>1.1.2</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>gzc Shiro</short-name>
<description>gzc Shiro JSP Tag Library.</description>
<tag>
<name>hasAnyPermission</name>
<tag-class>com.zjpii.wanbao.console.shiro.HasAnyPermissionTag</tag-class>
<body-content>JSP</body-content>
<description>Displays body content only if the current Subject (user)
'has' (implies) one of the specified permission (i.e the user has the specified ability) form a list of permissions.
</description>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
2、该标签对应的类
package com.zjpii.wanbao.console.shiro;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.tags.PermissionTag;
public class HasAnyPermissionTag extends PermissionTag{
private static final long serialVersionUID = 1L;
private static final String PERMISSION_NAMES_DELIMETER = ",";
public HasAnyPermissionTag() {
}
@Override
protected boolean showTagBody(String permissions) {
boolean hasAnyPermission = false;
Subject subject = getSubject();
if (subject != null) {
for (String permission : permissions
.split(PERMISSION_NAMES_DELIMETER)) {
if (subject.isPermitted(permission.trim())) {
hasAnyPermission = true;
break;
}
}
}
return hasAnyPermission;
}
}
3、页面上的使用
<%@ taglib prefix="myshiro" uri="/WEB-INF/tld/auth.tld" %>
<myshiro hashasAnyPermission name="">
</myshiro>