`
jiangduxi
  • 浏览: 453306 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

标签开发

阅读更多
  自定义标签由标签处理程序和标签的描述组成。当遇到特定标记时,标记处理程序就会告诉系统应该做什么。类中包含了请求期间将要执行的Java代码。标签的描述声明了怎么使用这个标签。标记可以带着属性和主体,这些属性和主体是可选的,最简单的标记可以没有属性和主体。以下是几种典型的标签。
1. 不带属性和主体的简单标签: <maytaglibs:SomeTag/>
2. 不带主体但是有属性的标签: <mytaglibs: SomeTag user="hello"/>
3. 带有主体和属性的标签: <mytaglibs:SomeTag user="hell" >
这里是标签体,可以是合法的JSP内容或者标签</mytaglibs:SomeTag>

另外,一个标签可以嵌套在另一个标签里面,这就使得标签可以有很强的也没内容管理能力。
标签的典型使用控制显示逻辑、访问数据库和内容迭代。

实例:HelloWorld标签开发

在Tag接口中,主要定义的是和标签声明周期相关的方法,比如doStartTag()、doEndTag()等。在Tag中,可以通过pageContext对象访问JSP页面的上下文。下面我们结合标签的生命周期讨论标签的处理过程。传统的标签的生命周期描述如下:

    (1) 当容器创建一个新的标签实例后,通过setPageContext设置标签的页面上下文

    (2) 使用setParent方法设置这个标签的上一级标签。如果没有上一级嵌套,设置为null

    (3) 设置标签的属性。这个属性在标签库描述文件中定义。如果没有定义属性,就不调用此类方法。

    (4) 调用doStartTag方法,这个方法可以返回EVAL_BODY_INCLUDE和SKIP_BODY。当返回EVAL_BODY_INCLUDE时,就计算标签的Body;如果返回SKIP_BODY就不计算标签的Body。

    (5) 调用doEndTag方法,这个方法可以返回EVAL_PAGE或者SKIP_PAGE。当返回EVAL_PAGE时,容器将在标签结束时继续计算JSP页面的其他部分;如果返回SKIP_PAGE
    容器将在标签结束时停止计算JSP页面的其他部分。

    (6) 调用release()方法释放标签程序占用的任何资源。


注意: 标签体是指位于标签开始和结束中间的部分,如
       <mytag:test>helloworld</mytag:test>
      在上面的标签中,HelloWorld为标签体。标签可以没有标签体,如
       <mytag:test/>


在开发标签时,可以有两种选择,一种是直接实现原始的接口,另一种是从TagSupport类继承。

看看如何实现Tag接口
步骤:
1 开发标签实现类
2 编写标签描述,这个描述通常是以.tld结尾的文件
3 在web.xml中指定标签库的引用。

开发实现类
位置:在WEB-INF\classes\目录下新建一个HelloTag_interface.java文件。

package com.text.ch13;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.util.Hashtable;
import java.io.Writer;
import java.io.IOException;
import java.util.Date;
 
/** 演示实现Tag接口的方式来开发标签程序*/
public class HelloTag_Interface implements javax.servlet.jsp.tagext.Tag
{
  
     private PageContext pageContext;
     private Tag parent;
     public HelloTag_Interface()
     {
       super();
       }
    /** 设置标签的页面的上下文*/
   public void setPageContext(final javax.servlet.jsp.PageContext pageContext)
   {
       this.pageContext = pageContext;
    }
   /** 设置上一级标签*/
   public void setParent(final javax.servlet.jsp.tagext.Tag parent)
   {
        this.parent = parent;
    }
   /** 开始标签时的操作*/
   public int doStartTag()throws javax.servlet.jsp.JspTagException
   {
      return SKIP_BODY; // 返回SKIP_BODY,表示不计算标签体
     }
   /** 结束标签时的操作*/
   public int doEndTag()throws javax.servlet.jsp.JspTagException
   {
       try{
            pageContext.getOut().write("HelloWorld ! ");
          }catch(java.io.IOException e)
          {
           throw new JspTagException("IO Error:" + e.getMessage());   
           }
          return EVAL_PAGE;
       }
   /** Release 用于释放标签程序占用的资源*/
   public void release(){}
  
   public javax.servlet.jsp.tagext.Tag getParent()
   {
     return parent;
    }
  }


编写标签库描述
  在WEB-INF\tlds目录下建立一个mytag.tld文件,
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <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 web-jsptaglibrary_2_0.xsd" version="2.0">
  <description> A tag library exercising SimpleTag handlers</description>
  <tlib-version>1.0</tlib-version>
  <short-name>examples</short-name>
  <uri>/demotag</uri>
  <description>
   标签学习
  </description>

 <tag>
  <description>  Outputs Hello, World</description>
  <name>hello_int</name>
  <tag-class>com.test.ch13.HelloTag_Integerface</tag-class>
  <body-content>empty</body-content>
 </tag>
</taglib>
标签的真正描述就是黑体字部分。首先要指定标签的名字,然后指定标签的实现类,接下来指定标签体,由于没有标签体(<body-content>),这里就指定位empty。

[b]使用自定义标签[/b]
   要使用自定义标签,需要在web.xml描述文件中指定对标签的引用。
  <web-app>
   .....
     <taglib>
         <taglib-uri>/demotag</taglib-uri>
         <taglib-location>/WEB-INF/tlds/mytag.tld</taglib-location>
     </taglib>
  </web-app>


万事俱备现在看看JSP中的使用吧
 <%@taglib uri="/demotag" prefix="hello"%>
 <%@page contentType="text/html; charset=gb2312" language="java"%>
 <html>
 <head>
  <title> Test page</title>
  <meta fttp-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<body>
 <p>下面的内容从Taglib中显示:</p>
 <p><i><hello:hello_init></p>
</body>
</html>
分享到:
评论

相关推荐

    挖掘类标签开发案例_.mp4

    挖掘类标签即算法类标签,需要用算法挖掘用户相关特征。 挖掘类标签开发环节包括:①用户行为特征工程开发、②算法调优、③上线工程化调度等环节,开发周期较长。

    JSTL 以及自定义标签开发相关

    JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...

    Java自定义标签开发.zip

    Java自定义标签开发是Java服务器页面(JSP)技术中的一种高级特性,它允许开发者创建自己的标签库,以提供更加可重用、可维护和可扩展的代码。本资源包包含的内容涵盖了Java自定义标签的各个方面,从基础概念到实际...

    JSTL标签开发必备jar包

    JSTL,全称为JavaServer Pages Standard Tag Library,是Java Web开发中的一种标准标签库,它为JSP页面提供了一套强大的标签...这个"JSTL标签开发必备jar包"正是为了满足这一需求,包含了进行JSTL开发所必需的库文件。

    JSP自定义标签开发使用

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

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

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

    佳博标签机开发文件.zip_DEMO_佳博 二次开发_佳博 开发文档_佳博标签_佳博标签机开发文件

    佳博标签机是一款专业的标签打印设备,而"佳博标签机开发文件.zip_DEMO_佳博 二次开发_佳博 开发文档_佳博标签_佳博标签机开发文件"这个压缩包则包含了该设备的二次开发相关资料,旨在帮助程序员和系统集成商更好地...

    jsp自定义标签开发手册

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

    JSP自定义标签开发入门

    **JSP自定义标签开发入门** 在Java Web开发中,JSP(JavaServer Pages)是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。然而,为了提高代码的可读性和可维护性,通常会推荐...

    jsp标签开发的网上书店

    【jsp标签开发的网上书店】是一个专为非Java开发者设计的在线图书销售平台,它利用JSP标签技术实现了用户友好的界面和高效的运营。JSP(JavaServer Pages)是一种动态网页开发技术,允许开发者在HTML页面中嵌入Java...

    javaee 标签开发

    在Java EE(以前称为J2EE)开发...通过学习和熟练掌握Java EE中的标签开发,开发者可以创建出更加高效、可维护的Web应用,提高开发效率并提升代码质量。理解并运用上述知识点,将有助于你成为一名优秀的Java EE开发者。

    pbootcms标签生成器 PbootCMS开发助手

    而"pbootcms标签生成器 PbootCMS开发助手"就是为了简化这一过程,提升开发效率而设计的工具。 这个标签生成器可以帮助开发者快速创建PbootCMS中的自定义标签,避免手动编写繁琐的PHP代码。通过使用这个工具,你可以...

    jsp标签开发

    **JSP标签开发详解** JSP(JavaServer Pages)是一种基于Java的技术,用于创建动态网页。在JSP中,标签是HTML或XML文档中的特殊元素,它们提供了与服务器端交互的能力,增强了页面的功能和可维护性。JSP标签开发...

    JAVA自定义标签开发.doc

    JAVA自定义标签开发

    Java自定义标签开发Tag和tld开发

    Java自定义标签开发Tag和tld开发,非常详细的哟

    开发自定义JSP标签

    下面我们将深入探讨如何开发自定义JSP标签。 首先,我们需要理解自定义JSP标签的基本结构。自定义标签通常由三部分组成:标签库描述符文件(TLD),标签处理类(Tag Handler Class)以及标签库使用者在JSP页面中...

Global site tag (gtag.js) - Google Analytics