`

JSP自定义标签的简单例子

阅读更多
 JSP中允许我们自定义自己的标签,目前已经发展出来的JSTL的基本内容便是从这里来的,不过别人都是搞研究的,我们能用就行了,不过我们还是要了解一下其中的最基本的地方,那就是如何自定义自己的标签.
    下面开始.要自定义标签,首先得知道两个类:TagSupport和BodyTagSupport.BodyTagSupport继承了前面的类,这里仅对TagSupport为例.
   我们的标签类必须继承TagSupport类,其中她的重要方法有
   
int doStartTag(); int doEndTag(); void setParent(Tag t);
   
void setPageContext(PageContext p); void release();
   首先看setPageContext(PageContext p),该方法不需要我们调用,是JSP容器调用,它会初始化TagSupport中的一个PageContext对象,该对象来自于JSP,由该对象可以得到JSPWritter对象out--pageContext.getOut(),它实际上就是JSP中out对象.作用易言于表,就不多说了.
   然后来看setParent方法,若该标签有父标签,在JSP容器中会设置这个父标签
   接下来是release()方法,它会释放该标签所占用资源,容器调用
   现在来看我们要用的两个方法int doStartTag(); int doEndTag()
   doStartTag()会在JSP读取到标签开始的时候调用,好比有一个标签<sss></sss>,那么在红色部分就会调用该方法;相应的,在黑色的结束部分就会调用doEndTag().所以,我们要写的东西就可以在这两个方法里面写.同时,这两个方法分别返回int值,在doStartTag()中,若返回TagSupport.EVAL_BODY_INCLUDE则表示标签对中的文字会输出比如<sss>abcd</sss>若要输出abcd,则返回该子段;若TagSupport.SKIP_BODY,则不会处理标签对中的文字;那么doEndTag()中,若返回TagSupport.EVAL_PAGE,则表示该标签结束之后,继续处理剩下的页面内容;若返回TagSupport.SKIP_PAGE,则该标签之后的页面内容全部不会处理;
   标签可以拥有属性Attribute,一个属性对应一个标签类中实例变量,需提供获取设置方法.
   当完成一个类之后,需要配置该标签类,分别有xx.tld说明文件和在web.xml中配置
   说那么多,下面来做一个简单的例子,我们来做一个标签,该标签的作用是在JSP页面上输出一段话,该标签有一个属性name,输出内容中会显示"这是我的标签(换行)你好:name(值)"
   首先建立类
   
package mypack;
   
public class HelloTag extends TagSupport ...{
      
private String name; //name属性
      public String getName()...{
           
return name;
      }

      
public void setName(String name)...{
          
this.name = name;
      }


      
public int doEndTag() throws JspException...{
         JspWriter out 
= pageContext.getOut();  --pageContext对象以被容器初始化
         
try...{
           out.print(getName()); 
//获取name属性的值
         }
 catch (IOException e)...{
           e.printStackTrace();
         }

         
return TagSupport.EVAL_PAGE; //继续处理其他页面内容
       }

 
     
public void release() ...{
         
super.release();
     }


     
public int doStartTag() throws JspException ...{

       pageContext.getOut().print(
"这是我的标签+<br/>");

       
return TagSupport.EVAL_BODY_INCLUDE;  //标签开始要处理标签对中内容
     }


   }

 
 下面在WEB-INF下面创建一个hellotag.tld文件,这是一个XML文件,文件的内容如下
 
下面在web.xml中配置如下信息
 <jsp-config>
  
<taglib>
   
<taglib-uri>/HelloTag</taglib-uri>  --唯一能找到该标签的路径
   
<taglib-location>/WEB-INF/hellotag.tld</taglib-location>
                          --刚才的hellotag.tld的位置
  
</taglib>
 
</jsp-config>
    接下来在一个JSP页中,我们用
   <%@ taglib uri="/HelloTag" prefix="test"%>  --uri就是web中配置的,text表示命名空间
   引入该标签之后,就可以如下使用了
   <body>
     <text:hello name="wangxi">你好:</text:hello>
   <body/>
其实还有更加直接的就是在Page里直接<%@ taglib uri="[这里和tld中定义的uri要一致]" prefix="前缀" %>
 
分享到:
评论

相关推荐

    jsp自定义标签例子,能在Tomcat下直接运行

    在JSP自定义标签的例子中,我们可以看到这个压缩包文件可能包含了一个完整的示例项目,可以在Apache Tomcat这样的Servlet容器下直接运行。Apache Tomcat是一款开源的Servlet容器,广泛用于部署和运行Java Web应用...

    一个JSP自定义标签的例子。格式化基础数据

    通过上述步骤,我们成功地创建了一个简单的用于格式化日期的JSP自定义标签。这种方法不仅可以提高代码的可读性和可维护性,还可以减少重复代码的编写,使得整个项目更加简洁高效。在未来的工作中,我们可以根据实际...

    JSP自定义标签的例子

    本教程将通过一个具体的例子来介绍如何创建和使用JSP自定义标签。 首先,我们需要了解自定义标签的基本结构。一个自定义标签通常由三部分组成: 1. **TLD(Tag Library Descriptor)文件**:这是描述自定义标签库...

    JSP自定义标签 例子

    本教程将深入探讨JSP自定义标签的概念、创建过程及其实际应用。 ### JSP自定义标签概念 JSP自定义标签是对标准JSP标签(如`&lt;jsp:include&gt;`或`&lt;c:forEach&gt;`)的扩展,它们提供了更高级别的抽象,允许开发者定义自己...

    JSP自定义标签之自动完成框

    首先,我们要理解JSP自定义标签的概念。自定义标签是JSP的一种扩展机制,它允许开发者创建自己的标签库,以更加清晰和可维护的方式编写页面。自定义标签的实现通常涉及三个主要部分:标签库描述符(TLD)、标签处理...

    JSP自定义标签实例与详细讲解

    本教程将深入探讨JSP自定义标签的实例与详细讲解。 一、JSP自定义标签概述 JSP自定义标签是类似于HTML标签的自定义组件,但它们提供了更强大的功能,可以封装Java代码,提供复杂的业务逻辑。自定义标签通过TLD(Tag...

    jsp自定义标签编写的分页

    本教程将深入探讨如何利用JSP自定义标签来编写一个灵活、可扩展的分页系统,该系统不依赖于特定的数据库,具有很高的通用性。 首先,理解JSP自定义标签的工作原理至关重要。自定义标签由三部分组成:标签库描述符...

    jsp2.0 自定义标签和自定标签函数

    同时,这个文档可能会提供一些实际的例子,帮助读者理解自定义标签的工作原理。 而"test1.tld"文件则是对一个自定义标签库的描述,它定义了自定义标签的名称、属性、返回类型等。通过查看这个文件,我们可以了解到...

    jsp自定义标签的小例子

    本教程将通过一个简单的自定义标签例子来讲解其工作原理和使用方法。 一、JSP自定义标签概述 JSP自定义标签类似于HTML标签,但它们是自定义的,可以根据业务需求定制功能。这些标签通常由开发者自己编写,并封装了...

    JSP自定义Table标签demo

    总结起来,"JSP自定义Table标签demo"是一个教育性的示例,它演示了如何利用JSP自定义标签的灵活性和强大功能,来创建复杂且可复用的组件,如动态表格。通过学习和理解这个demo,开发者可以提升自己的JSP开发能力,...

    jsp自定义标签简单实例

    以下是一个关于"jsp自定义标签简单实例"的详细说明。 1. **自定义标签概述** 自定义标签是JSP 1.2版本引入的新特性,它允许开发者创建符合XML语法规则的自定义标签库,这些标签库可以包含一系列具有特定功能的标签...

    jsp的自定义标签

    **JSP自定义标签详解** 在Java服务器页面(JSP)技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用的组件,这些组件的行为类似于HTML标签,但具备更强大的功能和灵活性。这篇博客将深入探讨JSP...

    创建JSP自定义标签.doc

    本篇将详细介绍如何创建JSP自定义标签。 首先,了解自定义标签的基本结构。一个自定义标签其实是一个Java类,这个类需要继承自`TagSupport`或`BodyTagSupport`。这两个类由JSP容器提供,它们包含处理JSP页面与...

    JSP自定义标签分页

    JSP自定义标签分页+Struts1.x标签,包含标签分页类、标签tld文件、web.xml配置和调用例子,非常地简单。 只要在Action传request.setAttribute("listUser", listUser);到JSP即可实现自动分页,输出分页样式可以自己去...

    JSP自定义标签的开发及使用

    本篇文章将深入探讨JSP自定义标签的开发与使用,以及如何通过实例`Demo1_JspTag`来理解这一过程。 首先,我们需要了解自定义标签的基本概念。自定义标签是JSP的一种扩展机制,它允许我们封装复杂的Java代码或业务...

    JSP自定义标签示例源码

    首先,JSP自定义标签的核心在于自定义标签库(Tag Library),它是一组预定义的标签,由TLD(Tag Library Descriptor)文件来描述。TLD文件包含了标签的名称、属性、行为等元数据。开发者需要在TLD文件中定义标签的...

    jsp使用自定义标签taglib分页系列——完整例子

    jsp使用自定义标签taglib分页系列——完整例子

    jsp自定义标签学习

    【jsp自定义标签学习】 JSP自定义标签是JavaServer Pages(JSP)技术中的一种扩展机制,允许开发者创建自己的可重用的组件,这些组件可以像HTML标签一样在JSP页面中使用,增强了页面的可读性和复用性。下面我们将...

    jsp自定义标签入门实例

    本实例将带你深入理解JSP自定义标签的创建和使用。 首先,我们要了解自定义标签的结构。自定义标签通常由三部分组成:标签库描述文件(TLD)、标签处理类(Tag Handler)和JSP页面。TLD是XML格式的文件,用于定义...

    JSP自定义标签

    ### JSP自定义标签详解 #### 一、引言 JSP(JavaServer Pages)是一种基于Java技术的服务器端脚本技术,它允许在HTML页面中嵌入Java代码,从而实现动态网页的功能。随着Web应用的复杂度逐渐提高,开发者需要更加...

Global site tag (gtag.js) - Google Analytics