`
wezly
  • 浏览: 473715 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

自定义jsp标记库简介

阅读更多

1. 基本步骤 实例-输出“hello,eking”
 1) 标记处理类

 

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;

public class HelloTag extends TagSupport {
  public int doEndTag() throws javax.servlet.jsp.JspException {
    return  Tag.EVAL_PAGE;
  }
  public void release() {
    super.release();
  }
  public int doStartTag() throws javax.servlet.jsp.JspException {
      JspWriter out=pageContext.getOut();
      try{
        out.println("hello, eking");
      }catch(java.io.IOException ioe){
        ioe.printStackTrace();
      }
      return Tag.SKIP_BODY;
  }
}

 

 2)标记库描述符hellodemo.tld文件
 

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
  "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
  <tlibversion>1.0</tlibversion>
  <jspversion>1.1</jspversion>
  <shortname>hellodemo</shortname>
  <tag>
     <name>hello</name>
     <tagclass>WebLayer.JspTags.HelloTag</tagclass>
     <bodycontent>empty</bodycontent>
  </tag>
</taglib>

 

 

  3) 在web.xml中加入
 

  <taglib>
    <taglib-uri>/WEB-INF/hellodemo.tld</taglib-uri>
    <taglib-location>/WEB-INF/hellodemo.tld</taglib-location>
  </taglib>

 

 

  4)hello.jsp
  

 <%@ taglib uri="/WEB-INF/hellodemo.tld" prefix="demo" %>
 ....
 <demo:hello/>

 
2.TLD描述文件
1)一个taglib下可以有多个tag
2)tag标签下的bodycontent可以为:
   empty: 空标记,即起始标记和结束标记之间没有内容
   JSP:标记题为jsp文本,将和页面上的jsp文本一起被处理
   tagdependent:标记体内容由java标记处理类 来进行处理,不能当作jsp文本

 

3.标记处理类
   必须实现javax.servlet.jsp.tagext包中接口(Tag,IterationTag,BodyTag)之一。为了简化开发,我们只需要继承包中的两个抽象类,再重载某些方法即可
1)TagSupport: 标记体为空或不需要处理标记体
2)BodyTagSupport: 标记体需要被处理 (对应的bodycontent=tagdependent)

 

4.自定义标记的生命周期
1)doStartTag()
   处理起始标记时调用,返回一个int值表明对标记体的处理方式:
        Tag.SKIP_BODY:忽略标记体  (对应的bodycontent=empty)
        Tag.EVAL_BODY_INCLUDE: 处理标记体 
2)doEndTag()
   标记体结束时调用,返回一个int值表明对jsp余下页面的处理方式:
        Tag.EVAL_PAGE : 继续执行jsp文件的内容
        Tag.SKIP_PAGE : 停止执行
3)release()
   释放资源

下面两个方法只有在继承BodyTagSupport类的时候才需要重载
4)doInitBody()
   在调用doStartTag()之后,处理标记体之前被调用
5)doAfterBody()
   在处理完标记体后,调用doEndTag()之前调用。
   该方法的返回值代表对标记体的处理方式:
      IterationTag.EVAL_BODY_AGAIN : 需要再次处理标记体
      Tag.SKIP_BODY: 结束对标记体的处理

5.带属性的标记-从页面向自定义标记传递信息
1)页面
 <demo:hello name="username" />
 属性值也可以是表达式,如 :<demo:hello name="<%=request.getParameter("username")%>" />
2)标签处理类
必须提供get,set方法对属性进行操作
每个属性的set方法会在doStartTag()之前自动被调用
3)TLD文件中必须对所有的属性进行定义

<tag>
  ...
  <attribute>
     <name>属性名</name>
     <required>true表示属性必须存在,false表示可由可无</required>
     <rtexprvalue>
       定义属性是否允许使用表达式,为false表示只允许使用字符串</rtexprvalue>
  </attribute>

 

 

分享到:
评论

相关推荐

    JSP之自定义标记示例程序

    在JSP的学习中,自定义标记应该是一个难点;然而他的作用确是不容忽略的;这是一个自定义标记的示例程序,希望通过这个程序,能够让你对自定义标记的使用有一个大致的了解。

    掌握自定义JSP标签(html).

    掌握自定义JSP标签(html).实用易学,很强的引导性和参考性

    JSP自定义标签学习笔记

    本人自行研究JSP自定义标签的学习笔记 目录如下: 目录 一、概述 1 1.1 使用简单标签机制 2 1.2 使用标签文件 3 二 、自定义标签简介 3 2.1 自定义标签概念 3 2.2 标签相关概念 3 2.3 如何创建自定义标签 3 三、自...

    JSP自定义标记

    第6章 JSP自定义标记

    JSP自定义标记(四则运算)

    这是个实现ComputeSimpleTag标记的文件,该标记可以实现两个数字的加减乘除。自定义为,然后再输入两个数字就可以实现

    自定义JSP标签

    自定义JSP标签,继承了Tag接口和其他的接口

    自定义JSP分页标签

    很适用的自定义JSP分页标签,完整的源码.在实际项目中,是经常用到的.讲解一下:自定义分页标签实现步骤--1.编写一个分页标签处理类;2.配置标记的tld;3.web.xml配置;4.jsp页面调用标记.顺便补充一下:分页,有真分页(读...

    jsp自定义带属性的标签

    jsp自定义带属性的标签 jsp自定义带属性的标签

    jsp-taglibs:有用的JSP自定义标记库

    Phylliscoders JSP自定义标签库 朝鲜语的有用的JSP定制标签库这是您可能需要在韩国开发的JSP定制标签库。 它将不断更新。 安装 在dist/phylliscoders.jar路径中下载文件后,将jar文件复制到项目的WEB-INF/lib文件夹...

    在JSP中使用嵌套的自定义标记 (2002年)

    Java Server Page(JSP)是近几年发展起来的用于生成动态页面的技术,在1.1版本里推出了一项的新功能:允许用户在JSP页面中开发和使用自定义的标记.复杂自定义标记形式(如嵌套)有助于增强JSP页面的功能,扩充自定义...

    jsp自定义带标签体的标签

    jsp自定义带标签体的标签 jsp自定义带标签体的标签

    JSP标签,采用web.xml引入标签库描述文件

    JSP标签、自定义标签,含有属性的JSP标签,学习标签的基本功。

    第6章 JSP自定义标记.ppt

    Java EE编程技术课程课件ppt,供参考学习使用

    自定义标签,jstl应用

    JSP 标准标记库( Standard Tag Library , JSTL) 是一组以标准化格式实现许多通用的 Web 站点功能的定制标记。 JSP 技术的优势之一在于其定制标记库工具。除了核心 JSP 标记,如 jsp:include 之外,定制标记库...

    Struts标记库

    JSP视窗组件所使用的struts标记库由四类标记组成: Bean标记:用来在JSP页中管理bean 逻辑标记:用来在JSP页中控制流程 HTML标记:用来生成HTML标记,在表单中显示数据,使用会话ID对URL进行编程 模板标记:使用...

    ppt课件-第6章 JSP自定义标记.zip

    课件参考,欢迎下载

    JSP设计第二版(附源码).rar

    《JSP设计(第二版)》得到了彻底的修订和更新,包括了JSP规范1.2版本中的重大变化。它包括关于JSP Standard Tag Library...最后,本书作者展示了如何用逼真的示例开发自定义标记库,读者可将其用作自己JSP库的出发点。

    JSP 自定义标签

    JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记。 你可以继承SimpleTagSupport类并重写的doTag()方法来开发一个最简单的自定义标签。 创建”Hello”标签 接下来,我们想创建一个自定义标签叫作,标签...

    JSP自定义标签详解

    刚刚接触学习JSP标签的学习资料,将脚本简化为标签

Global site tag (gtag.js) - Google Analytics