`
波罗诺
  • 浏览: 28283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

自定义标签 一 对传统标签接口的使用

阅读更多

1.用自定义标签如何控制jsp页面某一部分内容是否执行:
编写一个java类,实现tag接口,通常是继承tag的实现类,TagSupport,控制doStartTag

方法的返回值,如果返回EVLAL_BODY_INCLUDE,则标签体会执行,如果返回SKIP_BODY,则

标签体不会执行
public class TagDemo1 extends TagSupport {
@Override
public int doStartTag() throws JspException {
return Tag.EVAL_BODY_INCLUDE;
}
}
说明:该标签套在什么内容上,什么内容就执行。如果返回值换成SKIP_BODY,那么套在什

么内容上,什么内容就不执行。


2.用自定义标签如何控制jsp页面是否执行
编写一个java类,实现tag接口,通常也是继承tag的实现类,TagSupport,控制doEndTag

方法的返回值,如果返回EVLAL_PAGE,则标签余下的jsp会执行,如果返回SKIP_PAGE,则

余下jsp不会执行
public class TagDemo2 extends TagSupport {
@Override
public int doEndTag() throws JspException {
return Tag.EVAL_PAGE;
}
}


3.用自定义标签如何控制标签重复执行
编写一个java类,实现IterationTag接口,通常也是继承tag的实现类,TagSupport,首先

控制doStartTag方法的返回值,让它返回EVAL_BODY_INCLUDE,让标签体执行,然后控制

doAfterBody方法,如果该方法返回EVAL_BODY_AGAIN,则标签就会重复执行,如果返回

SKIP_BODY,则标签体不会再执行。
public class TagDemo3 extends TagSupport {

int count = 0;//注意:这个变量必须写在方法体的外面,否则将形成死循环
@Override
public int doStartTag() throws JspException {
// TODO Auto-generated method stub
return Tag.EVAL_BODY_INCLUDE;
}

@Override
public int doAfterBody() throws JspException {
count++;
if(count<5){
return IterationTag.EVAL_BODY_AGAIN;
}else{
return Tag.SKIP_BODY;
}
}
}

4.用自定义标签如何修改标签体
编写一个java类,实现BodyTag接口,通常是使用他的实现类,BodyTagSupport,首先控制

doStartTag方法的返回值,让它返回EVAL_BODY_BUFFERED,则服务器会创建一个

BODYContent对象封装标签体,并调用setBodyContent方法,把代表标签体的BODYCOntent

对象传递给标签处理器类,开发人员在doendtag方法中,拿到BODYCOntent对象就拿到标签

体,从而可以对标签体作出修改后再输出。
public class TagDemo4 extends BodyTagSupport {
@Override
public int doStartTag() throws JspException {
// TODO Auto-generated method stub
return BodyTag.EVAL_BODY_BUFFERED;
}
@Override
public int doEndTag() throws JspException {
BodyContent bc = this.bodyContent;
String content = bc.getString();  //得到标签体
content = content.toUpperCase();
try {
this.pageContext.getOut().write(content);
} catch (IOException e) {
throw new RuntimeException(e);
}
return Tag.EVAL_PAGE;
}
}

注意:虽然传统tag接口已经被simpleTag接口取代,但是在一些框架源代码中还是经常会遇到,作为程序员,有必要清楚,传统标签的使用。
0
0
分享到:
评论

相关推荐

    自定义标签的内容及使用

    自定义标签的本质是一个实现了特定接口的Java类,这些接口定义在`javax.servlet.jsp.tagext`包中,例如`Tag`、`IterationTag`和`BodyTag`等。这些类和接口用于封装常用功能,当JSP页面被转换为Servlet时,自定义标签...

    自定义标签

    自定义标签是JSP(JavaServer Pages)技术中非常重要的一个概念,它允许开发者通过简化的方式来编写可复用的代码段,从而增强JSP页面的可读性和可维护性。本篇文章将深入讲解自定义标签的使用、实现原理以及开发过程...

    使用JSP自定义标签实现EMP分页

    在这个场景中,"使用JSP自定义标签实现EMP分页"是一个具体的应用实例,旨在提升代码的可读性和可维护性,对比传统的Servlet方法,自定义标签能让分页处理更加简洁。 首先,我们要了解JSP自定义标签的基本结构和工作...

    Java自定义标签 教程

    Java自定义标签是JSP开发中的一个重要特性,它允许开发者扩展JSP页面的功能,通过创建自己的标签库来封装复杂逻辑或常见操作。本教程将详细讲解如何创建和使用自定义标签。 首先,JSP中的标签库是实现自定义功能的...

    java web自定义标签的开发与应用

    Java Web自定义标签是JavaServer Pages (JSP) 技术的一个强大特性,它允许开发者创建可重用的、封装的组件,以提高代码的可读性和可维护性。在李宁老师的《Java Web开发速成宝典》中,这部分内容深入浅出地介绍了...

    自定义标签的开发

    首先,自定义标签实际上是一个Java类,这个类实现了JSP规范中的一个或两个接口。通常,这些接口包括`javax.servlet.jsp.tagext.Tag`或`javax.servlet.jsp.tagext.SimpleTag`。`Tag`接口是经典标签的基础,适用于需要...

    自定义(jsp)标签

    自定义标签,即用户可以根据自己的需求定义一系列可重用的标签,这些标签可以在多个JSP页面中使用。相比于传统的JSP脚本,自定义标签具备以下显著优势: 1. **提高代码可读性**:自定义标签可以让非技术背景的人员...

    掌握自定义jsp标签

    4. **在JSP页面中使用**:在JSP页面中引入TLD文件,然后就可以像使用内置标签一样使用自定义标签了。 四、自定义JSP标签的使用示例 假设我们有一个自定义标签`&lt;my:displayUser&gt;`,用于显示用户信息。首先,创建`...

    jsp自定义标签开发+TLD文件元素详解+实例

    1. **创建标签处理类**:这个类需要实现JSP提供的特定接口,如`Tag`(适用于传统标签)或`SimpleTag`(适用于简化标签)。对于`SimpleTagSupport`,我们只需覆盖`doTag()`方法来实现标签的逻辑。 2. **定义TLD文件*...

    Bootstrap tagsinput自定义标签插件

    Bootstrap tagsinput是一款强大的前端开发工具,它专门设计用于在Bootstrap框架内创建自定义标签输入功能。这个插件允许用户以标签的形式输入和管理数据,极大地提升了用户体验,尤其适用于需要多标签选择的场景,如...

    jQuery自定义标签输入插件Tagator

    jQuery自定义标签输入插件Tagator是一款用于网页交互设计的工具,它允许用户在文本输入框中添加、编辑和删除自定义标签。这种插件在数据管理、分类、搜索建议等场景下非常实用,比如社交媒体的标签功能或者电商网站...

    自定义struts2 分页标签

    在传统的网页开发中,分页通常通过服务器端脚本或JavaScript实现,但在Struts2框架中,我们可以创建自定义标签来完成这一任务,使得代码更加模块化和易于维护。下面将逐步解析自定义分页标签的过程。 1. **创建...

    day15--使用传统模式和简单模式开发标签,简单标签开发案例,使用JSTL核心标签库.pdf

    **一、传统标签开发模式** 1. **标签接口与执行流程** - 标签接口通常是`javax.servlet.jsp.tagext.Tag`,它定义了六个关键方法:`setPageContext()`、`setParent()`、`doStartTag()`、`doEndTag()`、`release()`...

    JavaWEB开发-简单标签 ppt

    自定义标签是用户在JSP中定义的一种特殊标记,它们在页面被编译为Servlet时,会被转换为对特定的标签处理类的调用。 **自定义标签的核心**是标签处理类,它实现了`javax.servlet.jsp.tagext.Tag`或`javax.servlet....

    Java标签库—Taglib.pdf

    - **Tag接口**:是传统标签必须实现的经典接口,它有一个直接子接口`IterationTag`,用于开发迭代标签。 - **TagSupport类**:是`IterationTag`的一个实现类,通过继承`TagSupport`,开发者可以方便地开发出迭代标签...

    JSP自定义标签简单入门教程

    总的来说,JSP自定义标签通过`SimpleTag`接口提供了一种简化的方式来创建和使用自定义组件。它们不仅有助于提高代码的可读性和可维护性,还能帮助开发者组织和重用业务逻辑,使得JSP页面的开发更加高效。通过实践和...

    Spring自定义配置文件便签[Maven]工程可运行

    自定义标签通常是通过实现`org.springframework.beans.factory.xml.NamespaceHandler`接口和相关的`BeanDefinitionParser`类来创建的。这种机制使得我们可以创建出如`&lt;myapp:component&gt;`这样的自定义标签,其背后...

    JSP简单标签

    在Java服务器页面(JSP)技术中,简单标签(Simple Tags)是自定义标签的一种形式,它们为开发者提供了更简洁、可读性更强的代码,相比传统的JSP脚本元素和自定义标签库(Tag Library Directive,TLD),简单标签在...

Global site tag (gtag.js) - Google Analytics