`

java 自定义标签 实例

    博客分类:
  • jsp
阅读更多
自定义标签制作步骤:



1.扩展TagSupport

2.标签所对应的tld文件配置

3.在JSP页面引用tld配置文件并使用标签



标签制作常用方法说明:



doStartTag()和doEndTag()返回值处理:

SKIP_BODY (0) :跳过了开始和结束标签之间的代码。
EVAL_BODY_INCLUDE(1):将body的内容输出到存在的输出流中
SKIP_PAGE(5): 忽略剩下的页面。
EVAL_PAGE隐含(6):继续执行下面的页


实例制作:



(1)index.jsp

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="/WEB-INF/tagLib.tld" prefix="aaa" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html >
  <head>
   </head>
   <title>index.jsp</title>

  <body>
    <aaa:showDataTag pageSize="12"></aaa:showDataTag>

    <br>
  </body>
</html:html>



(2)tagLib.tld

<?xml version="1.0" encoding="UTF-8"?>
<!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.2</tlibversion>
<jspversion>1.1</jspversion>
<shortname>bean</shortname>
<uri>MyTagLib</uri>
<tag>        
<name>showDataTag</name>
<tagclass>TagSelect</tagclass>
<attribute>
<name>pageSize</name>
<required>true</required>

</attribute>
   </tag>
  </taglib>



(3)TagSelect.java

import java.io.IOException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.TagSupport;

public class TagSelect extends TagSupport{

private int pageSize;// pageSize属性,控制页面显示的个数,并且要生成get和set方法

public int getPageSize() {
  return pageSize;
}

public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
}

public int doStartTag() {

  pageContext.getOut();// 获取JSP页面的输出流 out
  pageContext.getRequest();// 获取JSP页面的请求对象 request
  pageContext.getSession();// 获取JSP页面的会话对象 session
  pageContext.getServletContext();// 获取JSP页面的应用对象 application [Page]
 
  JspWriter out = pageContext.getOut();// 用pageContext获取out,他还能获取session等,基本上jsp的内置对象都能获取
  System.out.println("out=" + out);
  TestNumber t = new TestNumber();
  if (t.isNumeric(Integer.toString(pageSize))) {
   for (int i = 0; i < pageSize; i++) {
    try {
     out.println("<table>");
     out.println("<tr>");
     out.println("<td>");
     out.println(i);
     out.println("</td>");
     out.println("<td>");
     out.println(i * 10);
     out.println("</td>");
     out.println("</tr>");
     out.println("</table>");
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  } else {

   try {
    out.println("<table>");
    out.println("<tr>");
    out.println("<td>");
    out.println("你输入的参数格式不对");
    out.println("</td>");
    out.println("<td>");

    out.println("</td>");
    out.println("</tr>");
    out.println("</table>");
   } catch (IOException e) {
    e.printStackTrace();
   }

  }

  return EVAL_PAGE;// 标签执行完后,继续执行后面的
}

public int doEndTag() {

  return SKIP_BODY;// 标签执行完后,不继续执行后面的
}
分享到:
评论

相关推荐

    java自定义标签实例

    在`webproject8`这个项目中,你可以找到一个完整的自定义标签实例。这个项目可能包含了一个名为`mytags`的标签库,里面包含了多个自定义标签。通过阅读源代码和查看TLD文件,你可以理解每个标签的工作原理,以及如何...

    Java自定义标签实例分析

    Java自定义标签是基于Java类的,这些类实现了`javax.servlet.jsp.tagext.Tag`或`javax.servlet.jsp.tagext.SimpleTag`接口。`Tag`接口是经典且必须实现的接口,它定义了标签生命周期中的一系列方法,如`doStartTag...

    java自定义标签教程

    首先,Java自定义标签是一个Java类,它可以实现`javax.servlet.jsp.tagext.Tag`接口或者其子接口。这个接口定义了标签的生命周期方法,如`doStartTag()`和`doEndTag()`,这些方法在标签的生命周期中被容器调用来执行...

    java 自定义标签 简单实例

    本篇文章将深入探讨Java自定义标签的简单实例,帮助你理解如何在实际开发中应用这一技术。 首先,我们需要了解自定义标签的基本结构和组成。一个自定义标签通常由三部分组成:标签库描述文件(TLD)、标签处理类...

    jsp 自定义标签实例

    在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的关键手段,它允许开发者创建可重用的组件,提高代码的可维护性和可读性。本实例将深入探讨如何实现一个简单的JSP自定义标签。 首先,自定义标签的实现...

    JSTL自定义标签实例解析

    **JSTL自定义标签实例解析** JavaServer Pages Standard Tag Library (JSTL) 是一套标准的标签库,用于简化JSP开发。JSTL允许开发者使用预定义的标签来处理常见任务,如迭代、条件判断、XML处理等。本文将深入讲解...

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

    五、自定义标签实例 一个简单的HelloWorld自定义标签可能如下: 1. 创建TLD文件(hello.tld): ```xml &lt;taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...

    tag struts2的自定义标签实例

    总结,Struts2的自定义标签实例涉及到以下几个关键步骤:创建标签实现类、定义标签描述符、在JSP中使用标签以及处理标签逻辑。通过这种方式,我们可以构建强大的视图层组件,使代码更易于理解和维护,同时提升应用的...

    java中自定义标签的使用方法

    1. **实例化**:当JSP引擎遇到自定义标签时,会根据TLD文件中的`tag-class`创建标签处理对象。 2. **初始化**:如果存在`set`方法,JSP引擎会将标签属性的值设置到对象中。 3. **调用开始标签**:执行`doStartTag()`...

    自定义标签,标签实例,ppt

    在Java Web开发中,自定义标签(Custom Tags)是一个强大的工具,它允许开发者创建可重用的组件,提高代码的可读性和维护性。自定义标签是JSP标准标签库(JSTL)的一种扩展,它能将复杂的业务逻辑封装起来,使JSP...

    Java自定义标签 教程

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

    spring自定义标签例子

    在"spring自定义标签例子"这个项目中,我们可以深入理解这一特性,特别是通过Chapter2工程的实例来学习。 Spring框架的自定义标签通常用于简化XML配置,提升可读性和可维护性。这些标签是基于Java的`org.spring...

    Freemarker 自定义标签 简单案例

    1. **编写Java类**:你需要定义一个处理自定义标签的Java类,这个类需要继承`freemarker.template.TemplateDirectiveModel`接口,并实现其方法。在这个类中,你可以编写处理逻辑,如接收参数、处理数据、生成输出。 ...

    JSP自定义标签实例

    在Java服务器页面(JSP)开发中,自定义标签是一个非常重要的特性,它允许开发者创建可重用的组件,提高代码的可维护性和可读性。本实例将深入讲解如何实现一个基于JSP的自定义分页标签,并涉及到Java反射机制的应用...

Global site tag (gtag.js) - Google Analytics