jsp tag 自定义标签实现按钮的显示
生活随笔
收集整理的這篇文章主要介紹了
jsp tag 自定义标签实现按钮的显示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前些天在一個項目中做了一個最基本的權限管理(標準的權限結構,用戶-角色-菜單),后來需要精確地控制到按鈕就想到了使用自定義標簽(jsp tag)來處理按鈕的顯示與隱藏。
下面是我參考網上的資料自己寫的一個自定義標簽的demo:
首先自定義標簽類:
package com.vanfon.p2p.admin.core;import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport;import com.vanfon.p2p.entity.Admin;public class PermissionTag extends TagSupport {/*** */private static final long serialVersionUID = 4592227792811389132L;@Overridepublic int doStartTag() throws JspException {boolean result = false;HttpServletRequest request = (HttpServletRequest) this.pageContext.getRequest();// 通過成員變量獲取HttpServletRequest對象Admin admin = (Admin) request.getSession().getAttribute("admin");//獲取登錄到系統的用戶if(admin!=null&&"1".equals(String.valueOf(admin.getIfsuper()))){result = true;}return result? EVAL_BODY_INCLUDE : SKIP_BODY;//EVAL_BODY_INCLUDE代表執行自定義標簽中的內容,SKIP_BODY代表不執行自定義標簽中的內容。} }
web,xml中加入:
<jsp-config> <taglib><taglib-uri>http://vanfon.p2p.cn/</taglib-uri><taglib-location>/WEB-INF/tlds/shiros.tld</taglib-location> </taglib> </jsp-config>最后在jsp中引入標簽: <%@ taglib prefix="p2p" uri="http://vanfon.p2p.cn/" %>
使用標簽: <p2p:permission><a href="#" class="easyui-linkbutton" iconCls="icon-add" οnclick="openCreateDialog();">新增</a></p2p:permission><p2p:permission ><a href="#" class="easyui-linkbutton" iconCls="icon-edit" οnclick="openUpdateDialog();">編輯</a></p2p:permission><p2p:permission ><a href="#" class="easyui-linkbutton" iconCls="icon-remove" οnclick="del();">刪除</a></p2p:permission>
然后就ok了,以管理員的身份(ifsuper=1)登錄系統表示可見,以普通用戶的身份(ifsuper!=1)登錄系統按鈕將不可見,以上就是jsp tag自定義標簽最簡單的用法,僅僅只做了是否是管理員的判斷,其實完整的應該是對所有用戶進行一個通用的控制。
擴展
比如:
PermissionTag.java
shiros.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>p2p permission taglib</description><display-name>permission taglib</display-name><tlib-version>1.0</tlib-version><short-name>p2p</short-name><!-- 在taglib.jsp文件中加上如下內容,<%@ taglib uri="<span style="font-family: Arial, Helvetica, sans-serif;">http://vanfon.p2p.cn/</span>" prefix="p2p"%> uri中的值必須與標簽<uri></uri>中的值一致,prefix名稱隨便取,取完后JSP那端的前綴名必須與這一致。 --><uri>http://vanfon.p2p.cn/</uri><tag><description>權限校驗標簽,有權限就顯示標簽體的內容,否則不顯示</description><name>permission</name><!-- 里面的內容是JSP文件中標簽里面的<p2p:permission module="admin" privilege="delete">permission --><tag-class>com.vanfon.p2p.admin.core.PermissionTag</tag-class><!-- JSP文件中的自定義標簽里面的值會傳到PermissionTag類接受,PermissionTag類接受到的值決定是否要顯示JSP文件中自定義標簽的內容。 --><body-content>JSP</body-content><!-- 里面的值代表<p2p:permission module="admin" privilege="delete">只不能用在JSP中。 --><attribute><description></description><name>module</name><!-- 里面的值代表JSP文件中自定義標簽 <p2p:permission module="admin" privilege="delete">中的module。--><required>true</required><!-- 里面的值代表在JSP文件中敲入自定義標簽(<p2p:permission)的時候,自定義標簽里面屬性名稱(module)不用手工去寫會自動顯示出來。 --><rtexprvalue>false</rtexprvalue><!-- 里面的值代表JSP文件中自定義標簽的屬性的值不能用EL表達式(${})來表示,如果為true自定義標簽的屬性的值能用EL表達式(${})來表示。 --></attribute><attribute><description></description><name>privilege</name><required>true</required><rtexprvalue>false</rtexprvalue></attribute></tag> </taglib>jsp中用法: <p2p:permission privilege="add" module="admin"><a href="#" class="easyui-linkbutton" iconCls="icon-add" οnclick="openCreateDialog();">新增</a></p2p:permission>
參考:http://blog.sina.com.cn/s/blog_a2de16f401016cpc.html
總結
以上是生活随笔為你收集整理的jsp tag 自定义标签实现按钮的显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10怎么关闭系统休眠 Win10关
- 下一篇: 使用jquery插件报错:TypeErr