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。

  • 相关阅读:
    v-cloak无效解决方法
    堆栈,托管堆,堆,栈的区别
    2018-3-25至2018-8-9的日语笔记
    windows下远程连接redis
    windows cmd打开共享文件夹
    C#数据分组
    安装pyspider遇到的坑
    argument 1 must be 2-item sequence, not int
    python,pip环境变量设置
    python编程学习--Pygame
  • 原文地址:https://www.cnblogs.com/ginponson/p/5094356.html
Copyright © 2011-2022 走看看