自定义标签执行顺序实验:
doStartTag()中的
return EVAL_BODY_INCLUDE
顺序:
setPageContext()
SetParent()
doStartTag()
doAfterBody()
doEndTag()
return SKIP_BODY
setPageContext()
setParent()
doStartTag()
doEndTag()
return EVAL_PAGE
执行顺序:
setPageContext()
setParent()
doStartTag()
setBodyContent()
doinitBody()
doAfterBody()
doEndTag()
release()
package com.chen.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTag;
import javax.servlet.jsp.tagext.Tag;
public class HelloTag implements BodyTag {
private PageContext pageContext;
private Tag parent;
public int doAfterBody() throws JspException {
System.out.println("doAfterBody()");
return 0;
}
public int doEndTag() throws JspException {
System.out.println("doEndTag()");
try {
pageContext.getOut().println("hello world!");
} catch (Exception e) {
// TODO: handle exception
}
return 0;
}
public int doStartTag() throws JspException {
System.out.println("doStartTag()");
//EVAL_BODY_INCLUDE 表示显示标签之间的内容
//<mytag:hello>God</mytag:hello>
//Godhello world!
//SKIP_BODY的话,则不显示了
//return EVAL_PAGE
return SKIP_BODY;
}
public Tag getParent() {
System.out.println("getParent()");
return null;
}
public void release() {
System.out.println("release()");
}
public void setPageContext(PageContext pageContext) {
System.out.println("setPageContext()");
this.pageContext=pageContext;
}
public void setParent(Tag tag) {
System.out.println("SetParent()");
this.parent=tag;
}
public void doInitBody() throws JspException {
System.out.println("doinitBody()");
}
public void setBodyContent(BodyContent arg0) {
System.out.println("setBodyContent()");
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="/WEB-INF/hellotag.tld" prefix="mytag" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<mytag:hello>dongdong</mytag:hello>
</body>
</html>
WEB-INF/hellotag.tld
<?xml version="1.0" encoding="utf-8"?>
<!--DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"-->
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>tagSample</short-name>
<uri>/hellotag</uri>
<tag>
<name>hello</name>
<tag-class>com.chen.tag.HelloTag</tag-class>
<body-content>JSP</body-content>
</tag>
</taglib>
后续:
比如使用:
<mytag:hello id="hello" name="mygod">dongdong</mytag:hello>
那么执行顺序会是:
setPageContext()
SetParent()
setID()
setName()
...[如果还有其他属性设置的话]
doStartTag()
分享到:
相关推荐
【jsp自定义标签学习】 JSP自定义标签是JavaServer Pages(JSP)技术中的一种扩展机制,允许开发者创建自己的可重用的组件,这些组件可以像HTML标签一样在JSP页面中使用,增强了页面的可读性和复用性。下面我们将...
本篇学习笔记将深入探讨JSP自定义标签的相关概念、创建方法以及实际应用。 一、概述 1.1 使用简单标签机制 JSP自定义标签提供了类似HTML标签的语法结构,通过自定义标签,开发者可以封装复杂的Java代码,使得页面...
java jsp自定义标签非常好用大家下载学习java jsp自定义标签非常好用大家下载学习java jsp自定义标签非常好用大家下载学习java jsp自定义标签非常好用大家下载学习java jsp自定义标签非常好用大家下载学习java jsp...
总结来说,通过学习和实践JSP自定义标签,我们可以构建高效、灵活的Web应用程序,比如这里的分页系统,它不仅简化了页面的开发,还增强了系统的扩展性和可维护性。在实际项目中,结合良好的设计原则和最佳实践,...
在Java Server Pages (JSP) 2.0版本中,自定义标签和自定义标签函数极大地扩展了JSP开发的灵活性和可重用性。这些特性允许开发者创建可复用的组件,使代码更加清晰,易于维护。本文将深入探讨JSP 2.0中的自定义标签...
本资源“jsp自定义标签大全.rar”提供了一套全面的JSP自定义标签的实例和指南,旨在帮助开发者深入理解和应用这一特性。 **JSP自定义标签的基本概念** JSP自定义标签不同于标准动作标签(如<jsp:include>或<jsp:...
综上所述,“权威实用jsp自定义标签demo,checkbox,radio>”教程旨在帮助开发者掌握如何创建和使用与选择器相关的自定义标签,从而提升JSP开发的效率和质量。通过学习这个教程,你可以了解到自定义标签的核心概念、...
通过学习和实践这一技术,开发者可以更好地利用JSP自定义标签的灵活性,提高Web应用的开发效率和质量。同时,了解源码和工具的运用也是提升编程技能的关键,这能帮助我们深入理解底层机制,从而编写出更加高效和可靠...
在JavaServer Pages ...总之,"掌握jsp自定义标签chm版"这份资料涵盖了JSP自定义标签的各个方面,是学习和提升JSP开发能力的重要参考资料。通过深入学习,开发者可以更加自如地驾驭JSP,构建高效、可维护的Web应用。
总结起来,"JSP自定义Table标签demo"是一个教育性的示例,它演示了如何利用JSP自定义标签的灵活性和强大功能,来创建复杂且可复用的组件,如动态表格。通过学习和理解这个demo,开发者可以提升自己的JSP开发能力,...
jsp、jstl自定义标签实现的分页,实现的还是比较好的,没有在request、session等范围保存过数据,在pageContext范围内保存过集合的数据, 实现的方法还是比较简单的,适用性还是比较广的,我是实在是没分了,平时也...
本教程将深入讲解JSP自定义标签库的学习,包括其原理、配置以及如何创建和使用自定义标签。 **一、JSP自定义标签库的概念** JSP自定义标签库是一组预定义的标签,它们扩展了HTML或XML,提供了一种更加结构化和面向...
在这个名为“Jsp自定义标签通用数据库查询”的项目中,我们探讨的关键知识点是如何利用自定义标签实现一个通用的数据库查询功能,使其能够适用于多种数据库系统。 首先,我们需要了解JSP自定义标签的工作原理。...
首先,JSP自定义标签的核心在于自定义标签库(Tag Library),它是一组预定义的标签,由TLD(Tag Library Descriptor)文件来描述。TLD文件包含了标签的名称、属性、行为等元数据。开发者需要在TLD文件中定义标签的...
通过上述步骤,我们不仅了解了如何创建JSP自定义标签,还学习了如何将其应用到实际项目中。自定义标签不仅可以提高代码的复用性,还能使页面逻辑更加清晰易懂。希望本文能对您的开发工作有所帮助!
创建一个**Eclipse项目**来学习和实践JSP自定义标签是一个很好的起点。Eclipse作为流行的Java IDE,提供了丰富的工具支持,使得创建、调试和管理JSP自定义标签变得简单。 首先,你需要创建一个新的Eclipse项目,...
下面将深入探讨JSP自定义标签的相关知识点。 ### 1. JSP自定义标签概述 JSP自定义标签是JSP 1.2引入的一项特性,它们提供了与标准JSP动作标签(如<jsp:include>或<jsp:useBean>)类似的功能,但允许开发者定义自己...
本实例将带你深入理解JSP自定义标签的创建和使用。 首先,我们要了解自定义标签的结构。自定义标签通常由三部分组成:标签库描述文件(TLD)、标签处理类(Tag Handler)和JSP页面。TLD是XML格式的文件,用于定义...