自定义jsp标签实现页面元素的权限控制

在 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 中我们可以对权限进行详细的控制。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值