1.由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推
广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单、便于编写和
调用的SimpleTag接口来实现标签的功能。实现SimpleTag接口的标签通常称为简单标签。
2.简单标签共定义了5个方法:
setJspContext方法
用于把JSP页面的pageContext对象传递给标签处理器对象
setParent方法
用于把父标签处理器对象传递给当前标签处理器对象
getParent方法
用于获得当前标签的父标签处理器对象
setJspBody方法
用于把代表标签体的JspFragment对象传递给标签处理器对象
doTag方法
用于完成所有的标签逻辑,包括输出、迭代、修改标签体内容等。在doTag方法中可以抛出
javax.servlet.jsp.SkipPageException异常,用于通知WEB容器不再执行JSP页面中位于结
束标记后面的内容,这等效于在传统标签的doEndTag方法中返回Tag.SKIP_PAGE常量的情况
3.当web容器开始执行标签时,会调用如下方法完成标签的初始化
(1)WEB容器调用标签处理器对象的setJspContext方法,将代表JSP页面的pageContext对象
传递给标签处理器对象。
(2)WEB容器调用标签处理器对象的setParent方法,将父标签处理器对象传递给这个标签处
理器对象。注意,只有在标签存在父标签的情况下,WEB容器才会调用这个方法。
(3)如果调用标签时设置了属性,容器将调用每个属性对应的setter方法把属性值传递给标
签处理器对象。如果标签的属性值是EL表达式或脚本表达式,则WEB容器首先计算表达式的
值,然后把值传递给标签处理器对象。
(4)如果简单标签有标签体,容器将调用setJspBody方法把代表标签体的JspFragment对象传
递进来。
4.执行标签时:
容器调用标签处理器的doTag()方法,开发人员在方法体内通过操作JspFragment对象,就可以实现是否执行、迭代、修改标签体的目的。
以下为simpleTag的实现例子 通常继承于SimpleTagSupport
//控制标签体是否执行
public class SimpleTagDemo1 extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
JspFragment jf = this.getJspBody(); //得到标签体
//jf.invoke(this.getJspContext().getOut());
jf.invoke(null);//等价于上一行代码
}
}
//重复执行标签体
public class SimpleTagDemo2 extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
JspFragment jf = this.getJspBody();
for(int i=0;i<5;i++){
jf.invoke(null);
}
}
}
//修改标签体内容
public class SimpleTagDemo3 extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
JspFragment jf = this.getJspBody();
StringWriter sw = new StringWriter();
//StringWriter类可以得到缓存里面的数据。
jf.invoke(sw);
String content = sw.toString();
content = content.toUpperCase();
this.getJspContext().getOut().write(content);
}
}
//余下 的jsp不执行
public class SimpleTagDemo4 extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
throw new SkipPageException();
}
}
//想要移除在jsp中的代码,可以将jsp页面中的java代码,放在doTag方法里面执行
分享到:
相关推荐
2. **实现标签处理类(Tag Handler)**:每个自定义标签对应一个Java类,该类需要实现`javax.servlet.jsp.tagext.Tag`或其子接口,如`SimpleTag`。在这个类中,我们可以编写处理标签逻辑的代码。 3. **在JSP页面中...
- **标签处理类**:实现了自定义标签功能的Java类,通常继承`TagSupport`或实现`SimpleTag`接口。 2. 自定义JSP标签的格式: - **引入标签库**:使用`@taglib`指令,指定前缀和URI,前缀用于识别标签库,URI指向...
三、自定义标签的实现 1. 定义标签处理类:这个类实现了`javax.servlet.jsp.tagext.Tag`接口或其子接口,如`TagSupport`,并覆盖`doStartTag()`和`doEndTag()`方法来处理标签的开始和结束。 2. 属性处理:自定义...
自定义标签通常被用来封装复杂的业务逻辑,减少JSP页面中的Java代码,使得视图层更加清晰。在本篇文章中,我们将深入探讨自定义标签的原理、实现方式以及其在实际项目中的应用。 1. **自定义标签的概念** 自定义...
自定义标签由三部分组成:标签库描述符(TLD)、标签处理类(Tag Handler Class)和标签库文件(JSP页面上的taglib指令)。TLD文件定义了标签的属性、行为以及它所关联的处理类。处理类是Java类,实现了JSP标准标签...
1. **创建标签处理类(Tag Handler Class)**:自定义标签的核心是Java类,它实现了`javax.servlet.jsp.tagext.Tag`或`javax.servlet.jsp.tagext.SimpleTag`接口。Tag接口适用于需要生命周期管理(如开始、结束标签...
总之,JSP自定义标签是提高JSP开发效率和代码复用性的重要工具,通过创建和使用自定义标签,我们可以构建出更加模块化、易于维护的Web应用程序。结合Tomcat这样的Servlet容器,可以快速地部署和测试这些自定义组件。
#### 三、如何使用自定义标签 1. **标签库声明**:首先需要在JSP页面中声明所使用的标签库,使用`<%@ taglib %>`指令。 ```jsp ``` 其中,`uri`属性指定标签库的位置,可以是一个本地路径或者是远程URL;`...
在Java中,自定义标签是通过实现特定的接口或继承已有的支持类来完成的。 首先,Java自定义标签是一个Java类,它可以实现`javax.servlet.jsp.tagext.Tag`接口或者其子接口。这个接口定义了标签的生命周期方法,如`...
在JAVAEE开发中,自定义标签(Custom Tags)是一种强大的工具,它允许开发者创建可重用的组件,提高代码的可读性和可维护性。自定义标签是JSP(JavaServer Pages)的一部分,通过扩展JSP标准标签库(JSTL),我们...
**JSP自定义标签详解** 在Java服务器页面(JSP)技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用的组件,这些组件的行为类似于HTML标签,但具备更强大的功能和灵活性。这篇博客将深入探讨JSP...
在Java Web开发中,自定义标签(Custom Tags)和自定义函数(Custom Functions)是提高代码复用性和可维护性的重要手段。它们是JSP(JavaServer Pages)标准标签库(JSTL)的一种扩展,允许开发者创建符合特定业务...
自定义标签的开发通常包括以下三个主要部分: 1. **标签库描述符(TLD,Tag Library Descriptor)**:TLD文件是XML格式,它定义了标签库的元数据,包括标签的名字、属性、返回类型等信息。例如,在`Demo1_JspTag`中...
### servlet与自定义标签知识点详解 #### 一、Servlet概述 Servlet是一种服务器端的应用程序接口(API),主要用于构建动态Web应用程序。它比JSP技术出现得更早,在JSP诞生前,Servlet不仅负责处理业务逻辑...
在JavaServer Pages (JSP) 技术中,自定义标签是实现页面逻辑和视图分离、增强代码可重用性和提高开发效率的关键工具。本资料"掌握jsp自定义标签chm版"全面讲解了这一核心概念,旨在帮助开发者深入理解和熟练应用JSP...
**JSP自定义标签**是JavaServer Pages (JSP)技术的一个强大特性,它允许开发者扩展JSP标准标签库的功能,创建自己的定制标签库。在JSP中,自定义标签通常用于封装复杂的业务逻辑或者视图展示,以提高代码的可读性...
自定义标签通常由三部分组成:标签处理类(Tag Handler Class)、标签库描述符文件(TLD,Tag Library Descriptor)和XML标签定义。在标签处理类中,开发者可以定义标签的行为,而TLD文件则提供了关于标签的信息,如...
在Java Web项目开发中,自定义标签(Custom Tags)是一个重要的技术点,它极大地提高了代码的可读性和可维护性。自定义标签是JSP(JavaServer Pages)的一部分,允许开发者创建自己的视图组件,就像HTML标签一样,但...
- **接口**:自定义标签通常实现`javax.servlet.jsp.tagext.Tag`接口或者其子接口`javax.servlet.jsp.tagext.SimpleTag`。`Tag`接口用于简单的标签,而`SimpleTag`接口则适用于那些没有开始和结束标签的简单标签。 ...