定制标记库
1 编写标记处理类
public class TimerTag extends TagSupport{
private long start;
private long end;
public int doStartTag(){ //doStartTag标记开始方法
start=System.currentTimeMillis();
return EVAL_BODY_INCLUDE;//
}
public int doEndTag() throws JspTagException {//doEndTag标记结束方法
end=System.currentTimeMillis();
long elapsed=end-start;
try{
JspWriter out=pageContext.getOut();
out.println("running time:"+elapsed+"ms.");
}catch(IOException e){
throw new JspTagException(e);
}
return EVAL_PAGE;//
}
}
2 编写.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>custion web utility tags</description> //对当前标记库的描述
<tlib-version>1.0</tlib-version> //当前标记库的版本
<short-name>util</short-name> //对当前标记库使用时的前缀名称
<uri>http://163.com</uri> //可任意
<tag>
<description>calc code running time</description> //对当前标记的描述
<name>timer</name> //标记我名称
<tag-class>com.tags.TimerTag</tag-class> 当前标记对应的处理类的具体名称
<body-content>JSP</body-content> //可有empty,JSP
</tag>
</taglib>
3 使用格式
jsp页面
<%@ taglib prefix="util" uri="http://163.com" %> 添加指令
<util:timer></util:timer>
总结:
TLD是一个XML文件,在WEB-INF目录下
<taglib>根元素
<tlib-version>version</tlib-version>标记库的版本
<short-name>prefix</short-name>前缀名称
<uri>uri</uri>引用的地址
...
<tag>
<name>tagname</name>标记名称
<tag-class>classname</tag-class>标记对应的处理类
<tei-class>classname</tei-class>标记处理类的辅助处理类
<body-content>[JSP,empty,scriptless,tagdependent]</body-content>
//jsp表示标记中可以包含html,java代码,这些代码可以被运行
//empty表示标记中不包含内容
//scriptless表示标记中可以包含EL,jsp的动作代码,不可以包括JAVA脚本代码
//tagdependent表示标记中可以包含
<attribute>标记的属性
<name>pattern</name>属性的名称
<required>false</required>表示该属性是否是必须的
<rtexprvalue>false</rtexprvalue>该属性是否可以是JSP的表达式
</attribute>
</tag>
</taglib>
TagSupport运行原理(不能对标记所包含的内容进行二次加工)
BodyTagSupport运行原理(可以对开始和结束标记所包含的内容进行处理)
public int doAfterBody()throws JspTagException{
BodyContent bc=getBodyContent();取内容
String input=bc.getString();取内容
JspWriter out=bc.getEnclosingWriter();
String newContent=input;
try{
out.println(newContent);
}catch(IOException e){
throw new JspTagException(e);
}
return 1;
}
分享到:
相关推荐
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。
这篇博客文章“将定制标签库开发为标记文件”深入探讨了如何创建自己的标签库,并将其转化为标记文件,以便在JSP页面中方便地使用。以下是对这一主题的详细阐述: 首先,我们来理解什么是自定义标签库。在Java Web...
Calendar Tag Library 是基于JavaServer Pages (JSP) 标记库技术构建的,它提供了一系列预定义的JSP标签,开发者可以直接在JSP页面中使用这些标签来生成日历视图。通过这些标签,开发者无需编写复杂的JavaScript或...
这个标记库提供了一系列的JSP标签,允许开发者以声明式的方式构建交互式的、动态更新的树结构,而无需深入JavaScript或CSS的复杂性。 首先,`tree.css` 文件是样式表,它包含了用于呈现树形视图的各种样式规则。...
Tag Library Descriptor (TLD) 文件是JavaServer Pages (JSP) 标签库的一部分,用于定义自定义标签的行为和属性。在这个文件中,Google Tag Library的所有自定义标签都进行了描述,包括它们的名称、参数、返回类型...
JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问. 如果要使用JSTL,则必须将...
JSP 标准标记库( Standard Tag Library , JSTL) 是一组以标准化格式实现许多通用的 Web 站点功能的定制标记。 JSP 技术的优势之一在于其定制标记库工具。除了核心 JSP 标记,如 jsp:include 之外,定制标记库...
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也...
综上所述,"aesh-extensions-0.51.zip" 为Java命令行工具提供了丰富的扩展功能,而 "tag-library.zip" 则是Java Web开发中的一个优雅的JSP标记库,两者都是开源项目,鼓励社区参与和共享。通过利用这些资源,开发者...
11文件夹:定制标记库(Tag Library),包括14个实例。 12文件夹:表达式语言(Expression Language),包括8个实例。 13文件夹:Servlet,包括3个实例。对应的WEB-INF\src\mil\zcz\jsp\servlet文件夹下包含68个...
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也...
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据...
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据...
"定制标签库"这个标题暗示了我们将在讨论如何构建和使用这样的库,以便更好地控制和扩展HTML的标记能力。 标签库(Tag Library)在JavaServer Pages (JSP) 和其他类似的服务器端技术中扮演着重要角色。它将可重用的...
自定义标记的实现基于JSP Tag Library(标签库)。一个标签库由一组相关的自定义标记组成,定义在一个XML文件(TLD,Tag Library Descriptor)中。TLD文件描述了每个标记的属性、行为和关联的Java类。当JSP容器遇到...
"Taglibrary for Jess-开源" 指的是一个专为Java Server Pages (JSP)设计的开源标签库,它使得开发者能够方便地在JSP页面中使用Jess,一个流行的Java规则引擎。 **描述详解:** 描述部分提到,这个JSP标记库的目的...
**一、创建Tag Handler Class(标记处理器类)** 1. **空Body的标签处理器类** 要创建一个没有Body内容的自定义标签,你需要实现`javax.servlet.jsp.tagext.Tag`接口或继承`TagSupport`类。主要覆盖以下两个方法:...
它于2002年6月发布了1.0版本,并由四个定制标记库和一对通用标记库验证器组成。 #### 二、JSTL 1.0 版本概述 JSTL 1.0版本主要包含了以下几个部分: - **核心标记库(Core Tag Library)**:提供了一组常用功能,...
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。在 developerworks 上其新系列...