zoukankan      html  css  js  c++  java
  • jsp如何自定义tag的标签库?

      虽然和上一次的使用自定义的tld标签简化jsp的繁琐操作的有点不同,但是目的也是一致的。自定义tag比较简单。

     1、新建tag标签

      在WEB-INF目录下新建一个tags的文件夹,是自定义tag标签的位置。

    2、编辑标签

    <%@ tag import="org.apache.shiro.util.StringUtils"%>
    <%@ tag import="org.apache.shiro.SecurityUtils" %>
    <%@ tag import="org.apache.shiro.subject.Subject" %>
    <%@ tag import="java.util.Arrays" %>
    <%@ tag pageEncoding="UTF-8" trimDirectiveWhitespaces="true"%>
    <%@ attribute name="name" type="java.lang.String" required="true" description="角色字符串列表" %>
    <%@ attribute name="delimiter" type="java.lang.String" required="false" description="角色字符串列表分隔符" %>
    <%
        if(!StringUtils.hasText(delimiter))
            delimiter = ",";
        
        if(!StringUtils.hasText(name)){
            return ;
        }
        
        String[] roles = name.split(delimiter);
        Subject subject = SecurityUtils.getSubject();
        if(subject.hasAllRoles(Arrays.asList(roles))){
            %>
            <jsp:doBody/>
            <%
        };
    %>

      tag一些标签的属性不太复杂,一看就能懂得。<jsp:doBody/>表示如果符合条件就运行一次自定义标签的内容。

    3、使用

    <%@ taglib prefix="test" tagdir="/WEB-INF/tags" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <test:hasAllRole name="admin">
    admin
    </test:hasAllRole>
    </body>
    </html>

      jsp引入标签库,注意标签库的引用地址是tagdir,而不是uri。上述例子表示用户有admin这个角色页面就显示admin。

  • 相关阅读:
    每周总结8.18
    每周总结7.28
    每周总结8.25
    每周总结7.21
    每周总结8.11
    每周总结8.4
    大道至简 读后感
    递归进行回文的判断
    课后作业1
    GoodBlogs Websites
  • 原文地址:https://www.cnblogs.com/ginponson/p/5094356.html
Copyright © 2011-2022 走看看