1. 程式人生 > >jsp自定義標籤實現許可權攔截

jsp自定義標籤實現許可權攔截

    最近專案需要要實現在頁面端一個許可權攔截功能。具體需求是,一個使用者登陸到系統後,判斷他是否有執行某個功能的許可權,如果有許可權,則功能鍵對該使用者可見;否則的話,不可見。要實現此功能,自定義標籤無疑是一種很好的解決辦法。具體方法如下:(語言java、頁面實現jsp、開發工具myeclipse6.5)

1、編寫標籤類,標籤類就是普通的java類,只是該類要繼承TagSupport類。

2、建立TLD檔案,定義表示式函式。

3、在JSP頁面內匯入並且使用。

案列說明:

1、編寫標籤類

     
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;
      User user = WebUtil.getUser((HttpServletRequest) pageContext.getRequest());//WebUtil是自定義的工具類,獲取此時登陸的使用者
      SystemPrivilege privilege = new SystemPrivilege(new SystemPrivilegePK(this.module,this.privilege));
      for(PrivilegeGroup privilegeGroup : user.getGroups()){//迴圈檢測使用者具有的許可權組
         privilegeGroup.getPrivileges().contains(privilege);//使用者的許可權是否包含功能許可權
         result = true;
         break;
      }
      return result? EVAL_BODY_INCLUDE : SKIP_BODY;//真:返回EVAL_BODY_INCLUDE(執行標籤);假:返回SKIP_BODY(跳過標籤不執行)
   }
}

2、建立TLD檔案,該檔案要放在類資料夾下META-INF下。

<?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>yuguan wuxipolice permission taglib</description><!-- 描述 --> <display-name>permission taglib</display-name> <tlib-version>1.0</tlib-version><!-- 版號 --> <short-name>yunguan</short-name> <!-- 簡單名稱 --> <uri>http://www.wuxipolice.cn/</uri> <!-- 引用路徑 -->

<tag> <description>許可權校驗標籤,有許可權就顯示標籤體的內容,否則不顯示</description> <name>permission</name> <!-- 標籤名 --> <tag-class>com.yg.web.taglib.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>

3、在JSP頁面內匯入並且使用。

.........省略

<yg:permission module="department" privilege="update">       <a href="<html:rewrite action="/control/department/manage"/>?method=editDepartmentUI&departmentid=${entry.departmentid}">    <img src="/images/edit.gif" width="15" height="16" border="0"></a>    </yg:permission>

........省略

相關推薦

jsp定義標籤實現許可權攔截

    最近專案需要要實現在頁面端一個許可權攔截功能。具體需求是,一個使用者登陸到系統後,判斷他是否有執行某個功能的許可權,如果有許可權,則功能鍵對該使用者可見;否則的話,不可見。要實現此功能,自定義標籤無疑是一種很好的解決辦法。具體方法如下:(語言java、頁面實現jsp

實現按鈕級許可權管理--使用jsp定義標籤

在有些系統中,可能會用到按鈕級的許可權管理。這裡使用jsp自定義標籤來實現。0、基礎配置。建表    ###角色對應的操作按鈕1.1.1角色對應的按鈕關聯表,角色下有哪些按鈕是可以訪問的CREATE TABLE `system_role_operation` (  `role

JSP中用定義標籤實現集合的遍歷——山寨版c:foreach

【文章標題】在JSP中用自定義標籤實現集合的遍歷——山寨版<c:foreach> 【文章作者】曾健生 【作者郵箱】[email protected] 【作者QQ】19067890

jsp tag 定義標籤實現按鈕的顯示

前些天在一個專案中做了一個最基本的許可權管理(標準的許可權結構,使用者-角色-選單),後來需要精確地控制到按鈕就想到了使用自定義標籤(jsp tag)來處理按鈕的顯示與隱藏。 下面是我參考網上的資料自己寫的一個自定義標籤的demo: 首先自定義標籤類: package c

jsp定義標籤的學習[從學習到工作(五)]

     在現在的開發平臺上發現有自己定義的標籤,於是在空閒時間學習了一下自定義標籤,並且做了一個簡單的ajax校驗的text標籤,廢話少說,看下面的步驟和程式碼。      一. jsp頁面包含的內容    

jsp 定義標籤

 繼承關係 java.lang.Object          javax.servlet.jsp.tagext.TagSupport          javax.serv

JSP定義標籤遍歷List (ct:forEach)

問題描述 : jsp 的pageContext域中存在User物件的users列表,想在jsp檔案中遍歷users. <% class User{ private String name; private Strin

spring 定義標籤實現

Spring 自定義標籤實現 一、自定義Spring標籤簡介 Spring官方文件 42.1中,介紹瞭如何自定義Spring標籤,步驟如下: 1、編寫一個XML Schema描述您的自定義元素 2、編寫自定義名稱空間處理程式實現,實現NamespackHand

shiro jsp定義標籤

1.建tld檔案   auth.tld <taglib> <tlib-version>1.1.2</tlib-version> <jsp-version>1.2</jsp-version> <

JSP定義標籤

mvvm框架盛行的今天jsp視乎已經out了,但是由於歷史原因jsp使用範圍依舊十分廣泛。(本人 喜歡jsp ,在標籤開發的效率上,jsp要比vue低很多,並且前後端分離的開發模式,在除錯,部署,分工都要好很多。)  第一步 : jsp標籤的描述,宣告 jsp標籤需要使用

Spring定義標籤實現及踩過的坑(親測)

專案結構 先來一張專案結構圖,因為LZ是用的IDEAL,網上的大部分都是用的eclipse來實現: 這裡也大致說一下專案的新建,考慮到有的讀者會想LZ一樣對IDEAL的使用不是很熟練。 新建一個spring專案(不會的話網上搜索一下,很簡單的),建好之後,再新建這些資料夾,點選File—>Pr

shiro jsp定義標籤

1.建tld檔案   auth.tld <taglib> <tlib-version>1.1.2</tlib-version> <jsp-version>1.2</jsp-version> <

Spring AOP定義註解實現許可權控制

1.建立註解類,controller控制層使用該註解進行許可權控制使用 import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.R

spring 定義註解實現登陸攔截

需求:自定義一個註解,使得controller層的類或者方法在寫上這個註解後,會有登陸驗證。實現原理:(1)先寫一個自定義註解,註解上可以通過註釋確定是類/方法可以加此註解。(2)之後,寫一個攔截器,攔截器內可以通過handler得到被攔截器攔截的類或者方法,之後可以通過這個

(精)Spring IOC核心原始碼學習III:bean標籤定義標籤實現原理

本文將解析spring bean定義標籤和自定義標籤的解析實現原理。這裡說的標籤僅限於以xml作為bean定義描述符的spring容器,繼承AbstractXmlApplicationContext的一些子 容器,如XmlApplicationContext、ClassPat

Java Web學習筆記(一)FreeMarker定義標籤實現生成前端指令碼驗證

最近在學習Java Web因為.net已經寫的想吐了。通過網易雲課堂瞭解了當前常用的SSM框架的使用方法,前期一切都很順利,包括資料庫的訪問、事務提交、物件注入、面向切片等等,但是當我對頁面檢視進行實現時發現相對於.net有一點不方便。Java Web的檢視層的實現方式非常

JSP定義標籤詳細講解

一、基本概念:   1.標籤(Tag):   標籤是一種XML元素,通過標籤可以使JSP網頁變得簡潔並且易於維護,還可以方便地實現同一個JSP檔案支援多種語言版本。由於標籤是XML元素,所以它的名稱和屬性都是大小寫敏感的   2.標籤庫(Tag library):   由一系列功能相似、邏輯上互相聯絡的標籤構

JSP定義標籤開發+TLD檔案元素詳解

自定義標籤開發整理 從jsp1.1開始就可以在jsp頁面中使用自定義標籤了,使用自定義標籤不但可以實現程式碼重用,而且可以使jsp程式碼更簡潔。Jsp2.0的標籤擴充套件API中又增加了SimpleTag介面和其實現類SimpleTagSupport。 標籤擴充套件API層

JSP定義標籤(一) 樹形下拉選擇選單

<tag>       <name>selector</name>       <tag-class>com.moonNigh.tagSupport.SelectorTag</tag-class>       <body-content&

定義註解進行許可權攔截

什麼是註解? 用一個詞就可以描述註解,那就是元資料,即一種描述資料的資料。所以,可以說註解就是原始碼的元資料。比如,下面這段程式碼: @Override public String toString() { return "This is String Repre