`

JSP 自定义标签 BodyTagSupport

 
阅读更多
自定义标签分成4部
[red]1. 创建tld文件,在WEB-INFO文件夹下创建tld文件夹,在tld文件夹下创建util.tld文件,内容如下:[/red]
<?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">   
     <tlib-version>1.0</tlib-version>   
     <short-name>util</short-name>   
     <uri>http://langhua.com/taglib/util</uri>   
     <tag>
     <name>ctl</name>
     <tag-class>com.test.tag.CtlTag</tag-class>
     <body-content>JSP</body-content>
     <attribute>
     <name>code</name>
     <required>true</required>
     <rtexprvalue>true</rtexprvalue>
     </attribute>
     </tag>
</taglib>   

[red]2.修改web.xml文件[/red]
<jsp-config> 
    <taglib> 
      <taglib-uri>util</taglib-uri> 
      <taglib-location>/WEB-INF/tld/util.tld</taglib-location> 
    </taglib> 
  </jsp-config>

[red]3. 创建类com.test.tag.CtlTag[/red]
package com.test.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class CtlTag extends BodyTagSupport {

private String code ;

public int doAfterBody() {
System.out.println("----------doAfterBody------------");
BodyContent bodyContent = getBodyContent() ;
String html = bodyContent.getString() ;
JspWriter out = bodyContent.getEnclosingWriter();
if(code.equals("show")){
try {
out.println(html);
} catch (IOException e) {
e.printStackTrace();
}
}
return SKIP_BODY;
}

@Override 
    public int doEndTag() throws JspException { 
        System.out.println("---------doEndTag()----------"); 
        return super.doEndTag(); 
    } 
 
    @Override 
    public void doInitBody() throws JspException { 
        System.out.println("---------doInitBody()----------"); 
        super.doInitBody(); 
    } 
 
    @Override 
    public int doStartTag() throws JspException { 
        System.out.println("---------doStartTag()----------"); 
        return super.doStartTag(); 
    } 
   
   
public String getCode() {
return code;
}

public void setCode(String code) throws JspException {
//ExpressionEvaluatorManager.evaluate("code", code.toString(), Object.class, this, pageContext);
this.code = code ;
}

}
[red]4. 在JSP页面中引用[/red]
<%@ taglib prefix="util" uri="http://langhua.com/taglib/util"%>   
Weather it can be shown below :

<util:ctl code="show"><input id="test" name="test" type="button" value="Button" onclick="alert(232232323);" /></util:ctl>
完成
分享到:
评论

相关推荐

    JSP自定义标签学习笔记

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

    JSP自定义标签动态属性支持

    首先,我们需要理解JSP自定义标签的基本结构。自定义标签通常由两部分组成:标签库描述符(TLD)和标签处理类。TLD文件定义了标签的名称、属性、行为等元数据,而标签处理类则实现了这些行为,处理由JSP页面传递过来的...

    创建JSP自定义标签.doc

    本篇将详细介绍如何创建JSP自定义标签。 首先,了解自定义标签的基本结构。一个自定义标签其实是一个Java类,这个类需要继承自`TagSupport`或`BodyTagSupport`。这两个类由JSP容器提供,它们包含处理JSP页面与...

    JSP自定义标签 例子

    本教程将深入探讨JSP自定义标签的概念、创建过程及其实际应用。 ### JSP自定义标签概念 JSP自定义标签是对标准JSP标签(如`&lt;jsp:include&gt;`或`&lt;c:forEach&gt;`)的扩展,它们提供了更高级别的抽象,允许开发者定义自己...

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

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

    jsp自定义嵌套标签

    ### jsp自定义嵌套标签:定义与使用详解 在JavaServer Pages(JSP)技术中,自定义标签是扩展其功能的一种强大手段。而自定义嵌套标签,则是在此基础上进一步提升灵活性和重用性的机制。本文将深入探讨自定义嵌套...

    JSP自定义标签-标签属性_动力节点Java学院整理

    以下是关于JSP自定义标签及其属性的相关知识点: 1. 自定义标签的必要性:在JSP中,原生的标签(如, , &lt;jsp:include&gt;, &lt;jsp:forward&gt; 等)对于许多常见的任务来说已经足够,但在需要高度可定制化的场景下,自定义...

    jsp自定义标签中的困扰

    通过深入学习JSP自定义标签的生命周期和`BodyTagSupport`类提供的方法,开发者能够更好地理解和解决问题,从而编写出高效、可靠的自定义标签。如果你在实现过程中遇到具体的错误或疑惑,可以参考`JSP自定义标签各...

    JSP自定义标签.ppt

    JSP自定义标签是JavaServer Pages(JSP)技术中的一种高级特性,它允许开发者创建可重用的、自定义的HTML元素,这些元素能够执行特定的Java代码逻辑,而无需在页面中直接嵌入Java代码。这极大地提高了JSP页面的...

    jsp自定义标签开发手册

    **JSP自定义标签开发手册** 在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用、可封装的组件,提升代码的可读性和可维护性。本手册将深入探讨JSP自定义标签的开发流程...

    JSP自定义标签开发使用

    【JSP自定义标签开发使用】知识详解 JSP(JavaServer Pages)是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码。在JSP中,自定义标签的使用可以增强代码的可读性和可维护性,使得复杂的业务逻辑更易于封装...

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

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

    jsp自定义标签介绍与操作实例.doc

    【jsp自定义标签介绍与操作实例】 在Java服务器页面(JSP)技术中,自定义标签允许开发者创建可重用的代码片段,提高代码的可维护性和可读性。自定义标签通过扩展JSP标准标签库(JSTL)的能力,使用户能够根据特定...

    jsp自定义迭代标签

    ### JSP自定义迭代标签详解 #### 一、引言 在JSP(JavaServer Pages)开发中,自定义标签可以极大地提高代码的复用性和可维护性。特别是在处理循环迭代逻辑时,自定义迭代标签能够使页面逻辑更加清晰、简洁。本文...

    JSP 自定义标签(清华IT)PPT (适用于有一定编程基础的人员)

    1. **编写标签处理器类**:这个类需要继承自`javax.servlet.jsp.tagext.TagSupport`或`javax.servlet.jsp.tagext.BodyTagSupport`,并覆盖其中的特定方法,比如`doStartTag()`和`doEndTag()`,以实现自定义标签的...

    jsp自定义标签介绍与操作实例参考.pdf

    JSP自定义标签是JavaServer Pages(JSP)技术中的一种扩展机制,允许开发者创建可重用的自定义标签库,以提高代码的可读性和复用性。这些标签类似于HTML标签,但它们可以封装复杂的Java逻辑,提供更灵活的页面构建...

    jsp 自定义标签

    **JSP自定义标签**是JavaServer Pages(JSP)技术中的一个重要特性,它允许开发者扩展JSP语言,创建自己的可重用组件。通过自定义标签,开发人员可以编写更符合HTML语法、易于理解和维护的代码,同时隐藏复杂的Java...

    jsp java自定义标签 实现分页 当前位置标签

    总的来说,这个项目结合了JSP自定义标签的创建、分页功能的实现以及当前位置的显示,涉及到了Web开发中的多个核心概念。通过这种方式,我们可以构建更加模块化、易于维护的JSP应用,提升开发效率。

Global site tag (gtag.js) - Google Analytics