permission.tld
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>per</short-name>
<!-- backGroundTag -->
<uri>http://www.sdyy.tag</uri>
<tag>
<name>hasUrlPerm</name>
<tag-class>com.shenhesoft.logistics.manage.web.utils.tags.HasUrlPermissionTag</tag-class>
<attribute>
<name>code</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>/forMain.do</description>
</attribute>
</tag>
</taglib>
HasUrlPermissionTag
package com.shenhesoft.logistics.manage.web.utils.tags;
import java.util.List;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
import com.shenhesoft.logistics.common.session.AppSession;
/**
* @description
*
* @author shilvfei
*
* @date 2018年5月10日
*/
public class HasUrlPermissionTag extends BodyTagSupport {
private String code;// acApplication/forMain.do
@Override
public int doStartTag() throws JspException {
//获取session中存放的权限
List<String> permissionCodes = AppSession.getUserPermissionCodes();
//判断是否有权限访问
if (permissionCodes.contains(code)) {
//允许访问标签body
return BodyTagSupport.EVAL_BODY_INCLUDE;// 返回此则执行标签body中内容,SKIP_BODY则不执行
} else {
return BodyTagSupport.SKIP_BODY;
}
}
@Override
public int doEndTag() throws JspException {
return BodyTagSupport.EVAL_BODY_INCLUDE;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
导入到jsp中
<%@ taglib uri="/WEB-INF/permission.tld" prefix="per"%>
如何使用
<per:hasUrlPerm code="driverAccountsFinanceAudit">
<button class="btn-xs btn-primary pull-right checks" id="btnDriverAccountsFinanceAudit">财务审核</button>
</per:hasUrlPerm>
参照文档: