`

JSP自定义标签库

阅读更多
李送球2010-03-28
步骤如下
1. 扩张TagSupport
package com.meliora.mytag.tag;

import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class MyTag extends TagSupport {
private static final long serialVersionUID = 1L;
boolean flag;
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
@Override
public int doEndTag() throws JspException {
          /*
            *  Tag.EVAL_PAGE         执行后面的页面内容
            *  Tag.SKIP_PAGE         不执行后面的页面内容 
*/
System.out.println("doEndTag");
try {
if (bodyContent != null) {
bodyContent.writeOut(bodyContent.getEnclosingWriter());
} else {
}
} catch (IOException e) {
throw new JspTagException("IO ERROR:" + e.getMessage());
}
return EVAL_PAGE;
}
@Override
public int doStartTag() throws JspException {
   /*
    *  Tag.EVAL_BODY_INCLUDE 包含主体内容
            *  Tag.SKIP_BODY         不包含主体内容
            */
JspWriter out=pageContext.getOut(); 
if (flag) {
try {
out.print("Myjsp  Tag!");
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_BODY_INCLUDE;
} else {
return SKIP_BODY;
}
}
@Override
public int doAfterBody() throws JspException {
// TODO Auto-generated method stub
return super.doAfterBody();
}
@Override
public void doInitBody() throws JspException {
super.doInitBody();
}
@Override
public BodyContent getBodyContent() {
return super.getBodyContent();
}
@Override
public JspWriter getPreviousOut() {
return super.getPreviousOut();
}
@Override
public void release() {
super.release();
}
@Override
public void setBodyContent(BodyContent b) {
this.bodyContent = b;
}
}
2. 写自定义Tag的tld文件
标签库元素<taglib>属性:表格如下
        
<taglib>属性表格</taglib>
属性 描述
tlib-version 本标签库实现版本
jsp-version 标签库依赖的JSP版本
short-name 被JSP创作工具使用的一个短的默认名词
uri 指定这个标签库的uri信息
display-name 被工具使用的显示用的名字
small-icon 被工具使用的小图标
large-icon 被工具使用的大图标
description 本标签的描述
validator TLD验证信息
listener 实践监听器规范
        tag标签相关属性:
tag标签相关属性表
属性 描述
name tag标签唯一的名称
tag-class tag标签的处理类
tei-class tag标签的TagExtraInfo类
body-content 标签主体的内容
display-name 显示的名称
small-icon 被工具使用的小图标
large-icon 被工具使用的大图标
description 本标签的描述
variable 脚本变量的信息
attribute 标签属性的信息
3. web.xml中指定你的tld文件
<jsp-config>
<taglib>
<taglib-uri>/MyTag</taglib-uri>
<taglib-location>/WEB-INF/MyTag.tld</taglib-location>
</taglib>
</jsp-config>
4. 在JSP页面使用自定义标签
<%@ taglib prefix="t" uri="/MyTag" %>
<body>
  <t:flag flag="true"></t:flag>
  </body>
分享到:
评论

相关推荐

    jsp自定义标签库实现数据列表显示

    本文将详细讲解如何利用JSP自定义标签库实现数据列表的显示,以及涉及到的相关技术。 首先,`UserListTag.java` 是自定义标签的核心类,它继承了`javax.servlet.jsp.tagext.TagSupport` 或 `javax.servlet.jsp....

    jsp自定义标签库

    **JSP自定义标签库详解** 在JavaServer Pages (JSP) 技术中,自定义标签库(Custom Tag Libraries)是一种强大的特性,允许开发者创建可重用的、封装复杂功能的标签,使得JSP页面更加简洁易读。这篇内容将深入探讨...

    jsp自定义标签库注意事项

    【jsp自定义标签库注意事项】 在Java服务器页面(JSP)开发中,自定义标签库是一种强大的工具,它能够帮助开发者创建可重用的代码片段,提高代码的可读性和可维护性。以下是对JSP自定义标签库的详细解释和使用注意...

    jsp自定义标签库学习

    本教程将深入讲解JSP自定义标签库的学习,包括其原理、配置以及如何创建和使用自定义标签。 **一、JSP自定义标签库的概念** JSP自定义标签库是一组预定义的标签,它们扩展了HTML或XML,提供了一种更加结构化和面向...

    jsp自定义标签库问答集锦.

    ### jsp自定义标签库知识点详解 #### 一、什么是jsp自定义标签? 1. **概念**:JSP 自定义标签是一种将复杂的功能封装成一个简单的标签的方式,它允许开发者创建可重用的代码组件,这些组件可以在 JSP 页面中像...

    JSP自定义标签JSP自定义标签

    综上所述,JSP自定义标签提供了一种强大的机制,使得JSP开发者能够创建定制的、可重用的代码片段,提升Web应用的开发效率和质量。通过理解和熟练运用自定义标签,开发者可以更好地组织和管理JSP项目,实现更高效的...

    jsp 自定义标签实例

    本实例将深入探讨如何实现一个简单的JSP自定义标签。 首先,自定义标签的实现主要依赖于两个核心概念:Tag接口和TagSupport类。`Tag`接口定义了自定义标签必须实现的方法,如`doStartTag()`和`doEndTag()`,它们...

    jsp 自定义标签的使用

    3. **在JSP页面中使用**:在JSP页面中,通过`&lt;%@ taglib %&gt;`指令引入自定义标签库,然后就可以像使用内置标签一样使用自定义标签了。 二、分页封装 分页是网页应用中常见的需求,通过自定义标签可以方便地实现。...

    JSP自定义标签学习笔记

    本篇学习笔记将深入探讨JSP自定义标签的相关概念、创建方法以及实际应用。 一、概述 1.1 使用简单标签机制 JSP自定义标签提供了类似HTML标签的语法结构,通过自定义标签,开发者可以封装复杂的Java代码,使得页面...

    jsp自定义标签例子,能在Tomcat下直接运行

    部署自定义标签库通常需要将TLD文件和对应的Java类打包成JAR文件,然后将JAR文件放入Tomcat的`WEB-INF/lib`目录下。之后,在JSP页面中通过`&lt;%@ taglib %&gt;`指令引入标签库,即可在页面中使用。 在提供的链接中,`...

    JSP自定义标签开发使用

    通过以上步骤,开发者可以创建自己的JSP自定义标签库,实现特定的功能,提高代码复用性和可维护性。在实际开发中,自定义标签常常用于复杂的业务逻辑,如循环、条件判断、数据处理等,使得JSP页面更加清晰易读。

    JSP自定义标签之自动完成框

    在提供的`GlobalTags`文件中,可能包含了整个自定义标签库的相关代码,包括TLD文件、标签处理类以及可能的辅助工具类。通过分析这些代码,我们可以更深入地理解自定义标签的工作原理以及如何在JSP项目中实现自动完成...

    JSP自定义标签实例与详细讲解

    本教程将深入探讨JSP自定义标签的实例与详细讲解。 一、JSP自定义标签概述 JSP自定义标签是类似于HTML标签的自定义组件,但它们提供了更强大的功能,可以封装Java代码,提供复杂的业务逻辑。自定义标签通过TLD(Tag...

    jsp自定义标签报错的问题

    在使用JSP自定义标签时,开发者可能会遇到一些报错问题,这通常涉及到项目结构、类路径设置或自定义标签的编译与打包方式。在本文中,我们将深入探讨这些问题,以及如何解决“JspException”这个特定异常。 首先,...

    jsp页面自定义标签的实现

    2. **定义TLD(Tag Library Descriptor)文件**:TLD文件是JSP自定义标签库的元数据,它定义了标签的名称、属性、行为等。TLD通常放在WEB-INF目录下的tags子目录下,并以`.tld`为扩展名。在TLD文件中,你需要声明你...

    jsp2.0 自定义标签和自定标签函数

    在JSP页面中,通过`指令`引入自定义标签库,并使用`属性...&lt;/tag-name&gt;`的格式调用自定义标签。 **二、自定义标签函数** 自定义标签函数是在JSP 2.0中引入的一种新的特性,它允许开发者像使用EL(Expression ...

    JSP自定义标签之日期显示

    本篇将深入探讨“JSP自定义标签之日期显示”,以及如何通过自定义标签来优雅地处理日期格式化和展示。 首先,我们要理解JSP自定义标签的基本概念。自定义标签是JSP的一种扩展,它不是Java内置的标签,而是由开发者...

    jsp自定义标签编写的分页

    本教程将深入探讨如何利用JSP自定义标签来编写一个灵活、可扩展的分页系统,该系统不依赖于特定的数据库,具有很高的通用性。 首先,理解JSP自定义标签的工作原理至关重要。自定义标签由三部分组成:标签库描述符...

Global site tag (gtag.js) - Google Analytics