在 web.xml 下建立permission.tld
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>permission taglib</description><!-- 描述 -->
<display-name>permission taglib</display-name>
<tlib-version>1.0</tlib-version><!-- 版号 -->
<short-name>permission</short-name> <!-- 简单名称 -->
<uri>http://localhost:8080/aq/</uri> <!-- 引用路径 -->
<tag>
<description>权限校验标签,有权限就显示标签体的内容,否则不显示</description>
<name>permission</name> <!-- 标签名 -->
<tag-class>que.PermissionTag</tag-class> <!-- 标签类 -->
<body-content>JSP</body-content>
<attribute>
<description></description>
<name>module</name> <!-- 属性名 -->
<required>true</required> <!-- 标签的属性是否是必须的 -->
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description></description>
<name>privilege</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
新建 PermissionTag.java
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class PermissionTag extends TagSupport{
//模块
private String module;
//模块中具体权限
private String privilege;
public String getModule() {
return module;
}
public void setModule(String module) {
this.module = module;
}
public String getPrivilege() {
return privilege;
}
public void setPrivilege(String privilege) {
this.privilege = privilege;
}
@Override
public int doStartTag() throws JspException {
boolean result = false;
if (this.module.equals("1") && this.privilege.equals("2")) {
result = true;
}
return result? EVAL_BODY_INCLUDE : SKIP_BODY;//真:返回EVAL_BODY_INCLUDE(执行标签);假:返回SKIP_BODY(跳过标签不执行)
}
}
在 web.xml 中做如下配置:
<jsp-config>
<taglib>
<taglib-uri>/permission</taglib-uri>
<taglib-location>/WEB-INF/permission.tld</taglib-location>
</taglib>
</jsp-config>
在 jsp 页面头部做如下引用
<%@ taglib uri="/permission" prefix="yg"%>
在改jsp 页面中添加如下代码
<yg:permission module="1" privilege="2">
<a href="">修改</a>
</yg:permission>
<a href="">查看</a>
这样 当 privilege = "1" 时 修改按钮不显示,privilege = “2” 时修改按钮就会显示出来。
在 PermissionTag.java 中我们可以对权限进行详细的控制。