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。

时间: 2024-10-15 01:50:32

jsp如何自定义tag的标签库?的相关文章

JFinal中使用JSP的自定义Tag解决I18N

1. 设计原由 由于JFinal的国际化(I18N)支持在JSP中支持不好,因此,萌生了解决这一短板的念头. 实现时也考虑了几种方式,最终决定采用JSP中最原始的标签.因为自定义标签在JSP中容易实现,内容灵活且功能比较强大,可扩展性好. 2. I18N标签 自定义的I18N标签需要针对I18N的各个接口做最好的支持,使用<jf:i18n />作为标签名,下面是JFinal中I18N类的几个接口: public static String getText(String key) public 

java攻城师之路--复习java web之jsp入门_El表达式_JSTL标签库

JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP支持HTML语法,生成HTML方便. JSP技术与Servlet 技术区别和关系?JSP和Servlet技术都是用来动态生成网页的,Servlet不支持HTML语法,生成网页麻烦,JSP支持HTML语法,生成网页方便,JSP运行时翻译Servlet 执行的.JSP 就是 Servlet . JSP运

关于在jsp页面中使用/struts-tags标签库的迭代器时,从ValueStack获取参数使用EL的问题

情况复原下: 通过valuestack存了个user,然后页面里可以${user.sex}拿到男.${user.sex=='男'}拿到ture 但是在使用 <s:if text="${user.sex=='男'}">报错   <c:if text="${user.sex=='男'}">可以用 分析: 我们都知道Struts2是对request进行增强了的,在getAttribute()无法获取数据时,会从ValueStack中获取. 那么用s

jsp之jstl核心标签库

JSTL核心标签库技术 1. JSTL介绍 在JSP页面中即可书写html,也可以书写Java代码,导致页面混乱,维护,修改,升级难度加大,于是国际上不同的公司在实际应用中,根据页面的需求将Java代码进行抽离封装,页面上需要的时候,通过标签(和书写HTML标签差不多)的方式引入封装的Java代码.由于每个公司都有自己一套标签,开发人员在使用标签的时候,可以使用不同公司研发的标签,导致标签严重重复.为了解决这个问题,Apache Jakarta小组归纳汇总了那些网页设计人员经常遇到的问题,开发了

JavaWeb之 JSP:自定义标签

当jsp的内置标签和jstl标签库内的标签都满足不了需求,这时候就需要开发者自定义标签. 自定义标签 下面我们先来开发一个自定义标签,然后再说它的原理吧! 自定义标签的开发步骤 步骤一 编写一个普通的java类,继承TagSupport类~ package com.vmaxtam.dotest; import javax.servlet.jsp.tagext.TagSupport; public class MyTagTest extends TagSupport { } 步骤二 重写父类的se

JSP标准标签库

JSP标准标签库 JSP标准标签库(JSP Standard Tag Library,JSTL)是实现Web应用程序中常见的通用功能的定制标签库集,程序员使用JSTL标签来避免在JSP页面中使用脚本. JSTL概述 (1).JSTL英文全称是“JSP  Standard  Tag Library”,即JSP标准标签库之意. (2).JSTL是由JCP(JavaCommnunity Process)指定的标准规范,是一组形如html的标签. (3)JSTL提供了诸如循环.条件.数据库访问.XML处

jstl标签库基础教程及其使用代码

概述 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Standard Tag Library ).大多数 JSP 页面逻辑提供了实现的 JSTL 技术,该技术本身就是一个标签库. Sun 公司 Java 规范标准的 JSTL 由 apache jakarta 组织负责维护.作为开源的标准技术,它一直在不断地完善. JSTL 的发布包有两个版本: Stand

jsp中自定义Taglib

一.自定义标签入门之无参数自定义标签 1.开发自定义标签类当我们在JSP页面使用一个简单的标签时,底层实际上由标签处理类提供支持,从而可以使用简单的标签来封装复杂的功能,从而使团队更好地协作开发(能让美工人员更好地参与JSP页面的开发).自定义标签类都必须继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport,或者TagSupport除此之外,JSP自定义标签类还有如下要求. 如果标签类包含属性,每个属性都有对应的getter和setter方法.重写do

Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成service方法中out.write(表达式或变量) <%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量 2.jsp的运行原理 jsp在运行时翻译成servlet index.jsp------>work/index_jsp.java----->work/inde