麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

Java自定義簡單標簽實例

2019-11-26 16:01:48
字體:
來源:轉載
供稿:網友

下面將以權限的控制為例自定義一個標簽:
一、標簽類型

復制代碼 代碼如下:

<wxt:per uri="${pageContext.request.contextPath }/privilege/list"></wxt:per>

步驟:
1.自定義一個類PerssionTag 繼承SimpleTagSupport(自定義標簽一般都會繼承這個類)
復制代碼 代碼如下:

package cn.com.liveuc.privilege.tag;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import cn.com.liveuc.privilege.model.Privilege;
import cn.com.liveuc.privilege.model.Resource;
import cn.com.liveuc.privilege.model.Role;
import cn.com.liveuc.privilege.model.User;
/**
 *
 * @說明   自定義標簽
 */
public class PerssionTag extends SimpleTagSupport {

 //自定義標簽屬性,用于標簽傳入參數
 private String uri;

 //接收標簽傳入的參數
 public void setUri(String uri) {
  this.uri = uri;
 }
 @Override
 public void doTag() throws JspException, IOException {
  //獲取用戶登陸后保存的Session
  PageContext page = (PageContext) this.getJspContext();
  User user = (User) page.getSession().getAttribute("login");
  //如果用戶登陸
  if(user != null) {
   //用戶登陸判斷用戶權限
   List<String> list = new ArrayList<String>();
   //獲取用戶的角色
   Set<Role> role = user.getRole();
   for(Role r:role) {
    //獲取角色對應的權限
    Set<Privilege> privilege = r.getPrivilege();
    for(Privilege p:privilege) {
     //獲取權限對應的資源
     Set<Resource> res = p.getResource();
     for(Resource re:res) {
      list.add(re.getUri());
     }
    }
   }
   for(String ur:list) {
    //判斷用戶的權限
    if(ur.equals(uri)) {
     this.getJspBody().invoke(null); //有權限輸出標簽體內容
    }
   }
  }
 }
}

2.在WEB-INF下創建tld文件描述標簽。
復制代碼 代碼如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 version="2.0"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
 <description><![CDATA["To make it easier to access dynamic data;
                    the Apache Struts framework includes a library of custom tags.
                    The tags interact with the framework's validation and internationalization features;
                    to ensure that input is correct and output is localized.
                    The Struts Tags can be used with JSP FreeMarker or Velocity."]]></description>
 <display-name>"Struts Tags"</display-name>
 <tlib-version>2.2.3</tlib-version>
 <short-name>s</short-name>
 <uri>/wxt</uri>
 <tag>
  <name>per</name><!-- 標簽名 -->
  <tag-class>cn.com.liveuc.privilege.tag.PerssionTag</tag-class>
  <body-content>scriptless</body-content>
  <!-- 標簽屬性 -->
  <attribute>
   <name>uri</name><!-- 屬性名稱 -->
   <required>true</required><!-- 是否必須 -->
   <rtexprvalue>true</rtexprvalue><!-- 是否為動態標簽 -->
  </attribute>
 </tag>
</taglib>

3.運用標簽
在Jsp頁面導入標簽:
<A href="mailto:%@taglib prefix='wxt' uri='/wxt' %">%@taglib prefix="wxt" uri="/wxt" %</A>
運用標簽:
<wxt:per uri="${pageContext.request.contextPath }/user/list">
      <a href="${pageContext.request.contextPath }/user/list" target="reight">用戶管理</a>
</wxt:per>
用戶權限包含uri資源的將會輸出標簽內容。 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91久久久久久久久久久久久久 | 毛片免费在线观看视频 | 国产成人精品一区二区视频免费 | 久久精品性视频 | 一级黄色大片在线观看 | av在线播放免费观看 | jizzjizz中国少妇中文 | 欧美18一19sex性护士农村 | av色先锋| 色视频一区二区 | 久久精品视频免费观看 | japan护士性xxxⅹhd | 久久久久久久久久久av | 黄色免费影片 | 一二区电影 | 日本在线视频免费观看 | 国产资源在线播放 | 99riav视频一区二区 | 欧美一级特黄a | 国产成人精品一区二区视频免费 | 91精品国产综合久久久动漫日韩 | 免费午夜视频 | jizzjizzjizzjizz国产 | 性猛aa久久久 | 日本中文字幕网址 | 久久艹综合 | 蜜桃成品人免费视频 | 日本免费aaa观看 | 91九色免费视频 | 亚洲va久久久噜噜噜久久男同 | 蜜桃视频在线观看视频 | 久久精品伊人网 | 羞羞答答影院 | 久久国产精品二区 | 国产女做a爱免费视频 | 日本精品久久久一区二区三区 | 在线看免电影网站 | 日韩在线毛片 | 日韩中文字幕一区二区三区 | 毛片一级免费看 | 五月婷婷第四色 |