TagSupport 自定义权限标签

1、tld文件,定义权限标签

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>cloud</shortname>

<tag>
    <name>checkPower</name>
    <tagclass>com.zkhg.cloud.common.tld.CheckTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <attribute>
        <name>urlName</name>
        <!-- required:用来指定属性是否一定要使用,如果设置为true:则此属性在这个标签中一定被使用如果设置为false则这个属性石可选的 -->
        <required>true</required>
        <!-- rtexprvalue:设置成true:表示该自定义标签的某属性的值可以直接指定或者通过动态计算指定,即后台传入的值;
                                                               设置成false:表示该自定义标签的某属性的值只能直接指定 -->
        <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
        <name>modelName</name>
        <required>false</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
</tag>
</taglib>

2、web.xml引入自定义标签

    <jsp-config>
        <taglib>
            <taglib-uri>/cloud</taglib-uri>
            <taglib-location>/WEB-INF/tld/cloud.tld</taglib-location>
        </taglib>
    </jsp-config>

3、java代码

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

@SuppressWarnings("serial")
public class CheckTag extends TagSupport {

    // 操作url
    private String urlName;

    // 模块名
    private String modelName;

    /**
     * 页面加载之前起效
     */
    public int doStartTag() throws JspException {

        // 1、获取页面的模块id,及操作的url

        // 2、获取session中的权限信息pageContext.getAttribute("session");

        // 3、判断如果没有此权限则不显示操作按钮

        System.out.println("模块名:" + modelName + ",,操作url:" + urlName);

        // 可以根据权限判断是否显示操作
        if (true) {
            // 有此权限则显示
            return EVAL_PAGE;
        }
        // 没有权限则不显示
        return SKIP_BODY;
    }

    public String getUrlName() {
        return urlName;
    }

    public void setUrlName(String urlName) {
        this.urlName = urlName;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }
}

4、jsp测试

①、引入自定义标签

<%@ taglib uri="/cloud" prefix="cloud"%>

②、自定义标签使用,控制按钮是否显示

<cloud:checkPower urlName="/test/file/upload.do" modelName="zz"><input type="submit" value="文件上传"/></cloud:checkPower>



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值