自定义标签类 判断权限

功能 :判断当前用户是否有权限访问当页面
    思路:读取当前用户的权限(在登陆验证是设置的)
        和标签在jsp页面取到的值进行比较,不匹配时跳转到指定页面
    总结:标签类一般存放在web-inf/lib 
      xxxx.tld 配置 标签类的参数定义和指定类名
       web-inf.xml 指定xxxx.tld的位置和定义名字
       <mytag:CheckPower power="manager" gotoPage="login.jsp"/>
    错误总结:写标签类的时候get/set方法漏了 ,报错。
       写jsp页面时ctrl c ctrl v时 uri没改,页面不认。
    下步目标:标签类进行验证时能将验证错误信息写入session或者request
       然后能通过jsp页面读取到该错误信息
    
    
    ===================CheckPower.class(标签类程序)==================================
    package com.mytld;
    
    import java.io.IOException;
    
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;
    
    public class CheckPower extends TagSupport {
    
     private String power;
    
     private String gotoPage;
    
     public int doEndTag() throws JspException {
     String userPower = (String) pageContext.getSession().getAttribute(
     "power");
     try {
     if (!power.equals(userPower)) {
     pageContext.forward(gotoPage);
     return super.EVAL_PAGE;
     }
     } catch (Exception e) {
     e.printStackTrace();
     }
    
     return super.EVAL_PAGE;
     // return super.SKIP_BODY ;
     // return super.SKIP_PAGE;
     }
    
     public String getGotoPage() {
     return gotoPage;
     }
    
     public void setGotoPage(String gotoPage) {
     this.gotoPage = gotoPage;
     }
    
     public String getPower() {
     return power;
     }
    
     public void setPower(String power) {
     this.power = power;
     }
    
    }
    ================manager.jsp==================================
    <%@ page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
    <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
    <%@ taglib uri="/tags/struts-logic" prefix="logic" %>
    <%@ taglib uri="mytag" prefix="mytag" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
    <title>manager</title>
    </head>
    <body>
    <center>manager</center>
    <mytag:CheckPower power="manager" gotoPage="login.jsp"/>
    <logic:present name="LoginBean" scope="request">
    <bean:write name="LoginBean" property="passWord"/>
    </logic:present>
    </body>
    </html>
    
    ================mytag.tld===================
    <?xml version="1.0" encoding="Shift_JIS"?>
    <taglib>
    <tlibversion>1.2</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>mytag</shortname>
    
    <tag>
    <name>CheckPower</name>
    <tagclass>com.mytld.CheckPower</tagclass>
    <attribute>
    <name>power</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    
    <attribute>
    <name>gotoPage</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    
    </tag>
    
    </taglib>
    
    
    ==================web.xml(片断)===========================
     <taglib>
     <taglib-uri>mytag</taglib-uri>
     <taglib-location>/WEB-INF/mytag.tld</taglib-location>
     </taglib>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在给定的引用中,提到了一个自定义指令的权限鉴定功能。根据引用的描述,这个自定义指令似乎可以根据权限列表来判断标签是否具有权限。当标签传递的值在权限列表中存在时,标签被视为有权限。否则,会给标签添加特殊名 'noRight'。 这个自定义指令可以在判断标签权限时,根据是否含有 'noBtnRight' 名来进行操作。如果标签含有 'noBtnRight' 名,则表示没有权限。相反,如果没有 'noBtnRight' 名,则表示有权限。 在代码示例中,给出了一个事件函数 goToActDetail(e, item),在这个函数中,通过检查点击的元素是否含有 'noBtnRight' 名来判断是否有权限。如果没有权限,则可以执行相应的操作。如果有权限,则可以执行其他的操作。 总结来说,这个自定义指令是用来进行权限鉴定的,可以通过添加特殊名来判断标签是否具有权限,并在相应的事件函数中进行权限的处理。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [vue 自定义指令控制按钮权限](https://blog.csdn.net/weixin_42154189/article/details/129322880)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [vue自定义指令实现按钮权限鉴定](https://blog.csdn.net/weixin_49274461/article/details/127513651)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值