JSTL自定义标签库 (二)

要定义自己的标签,首先写个java类,extends TagSupport  或者 implements Tag ,然后在类体里实现自己想要的方法,或者覆盖父类的方法。

我定义的MyTag代码如下:

package com.xll.util;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class MyTag extends TagSupport{
    private String msg;

    public void setMsg(String msg){
        this.msg = msg;
    }

    public MyTag(){
        System.out.println("MyTag构造方法:一个myTag类的对象被构建了....");
    }

    public int doStartTag() {
        JspWriter out = this.pageContext.getOut();

        try {
            out.print(msg);
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("对象正在处理开始标记.....");
        return EVAL_BODY_INCLUDE;
    }
    public int doAfterBody() throws JspException{
        System.out.println("处理标签体(after body)....");
        return SKIP_BODY;
    }
    public int doEndTag() throws JspException{
        System.out.println("对象正在处理结束标记.....");
        return EVAL_PAGE;
    }
}

然后用MyEclipse 在WEB-INF下创建一个tld文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
                        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
 <tlib-version>1.0</tlib-version>
 <jsp-version>1.2</jsp-version>
 <short-name>my</short-name>
 <uri>xll</uri>

 <tag>
 <name>my</name>
 <tag-class>com.xll.util.MyTag</tag-class>
 <body-content>empty</body-content>
 <attribute>
 <name>msg</name>
 <required>true</required>
 <rtexprvalue>true</rtexprvalue>
</attribute>

 </tag>
</taglib>

这样的步骤已经可以在你的JSP页面中使用自定义的标签了,使用方法如下:

在JSP页面中,

<%@ taglib prefix="my" uri="xll"   %>
 

然后,

    <body>
<my:my msg="自定义标签"/>
</body>  

这样的步骤已经差强人意了。

Console打印信息:

MyTag构造方法:一个myTag类的对象被构建了....

对象正在处理开始标记.....

对象正在处理结束标记.....

浏览器页面显示:

自定义标签

时间: 2024-10-03 15:44:09

JSTL自定义标签库 (二)的相关文章

JavaWeb学习之JSTL自定义标签库的使用、JSTL自定义函数库(7)

一.自定义标签,步骤 * 确定需求 * <my:date /> 输出当前系统的时间 yyyy-MM-dd hh:mm:ss:SSS * 编写Java类 新建包名:com.yxl.tag,新建类MyDateTag,实现SimpleTag接口 * 只要与此接口有关的实现类,javax.servlet.jsp.tagext.JspTag * 需要实现具体的接口 * javax.servlet.jsp.tagext.SimpleTag,简单标签,JSP2.0**,选择这个 * javax.servle

JavaWeb-12 (自定义标签库开发&amp;JSTL标签库)

JavaWeb-12:自定义标签库开发&JSTL标签库 自定义标签库开发 一.自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码. 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1.编写一个实现Tag接口的Java类(标签处理器类). 2.编写标签库描述符(tld)文件,在tld文件中把标 实验:项目架构如下: a.tld <?xml version="1.0" encoding="utf-8" ?> &l

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例 EL表达式 1.获取域对象中的值 2.EL表达式支持运算 ${ num1 + num2 } EL获取常用的WEB对象 1.pageScope 获取page域对象的值 2.requestScope 获取request域对象的值 3.sessionScope 获取session域对象的值 4.applicationScope 获取application域对象的值 * 例子:向某个域中来存入值 req

jsp之jstl核心标签库

JSTL核心标签库技术 1. JSTL介绍 在JSP页面中即可书写html,也可以书写Java代码,导致页面混乱,维护,修改,升级难度加大,于是国际上不同的公司在实际应用中,根据页面的需求将Java代码进行抽离封装,页面上需要的时候,通过标签(和书写HTML标签差不多)的方式引入封装的Java代码.由于每个公司都有自己一套标签,开发人员在使用标签的时候,可以使用不同公司研发的标签,导致标签严重重复.为了解决这个问题,Apache Jakarta小组归纳汇总了那些网页设计人员经常遇到的问题,开发了

JSP自定义标签库

今天闲来无事,于是想起自己之前一直使用的标签,无论是jstl,struts标签还是springmvc标签,使用起来都觉得很方便,于是自己想尝试定义自己的标签. 下面把今天自己的成果给大家分享下.要自定义标签并使用标签,需要以下几步: 1.定义自己的标签解析类,一般都是继承TagSupport类(servlet-api.jar),Override该类的doStartTag()或者doEndTag()方法: 2.定义.tld文件: 3.在web.xml中声明要使用的标签(也可以不声明): 4.在js

JSTL自定义标签(三)

上篇讲解的是JSTL常用的核心标签,本篇介绍JSTL自定义标签的使用.还记得在学js的时候,我们学习了JQuery框架,同时学习了构造自己的js库,再去调用自己的js库,这就如同根据自己的需要些一个内聚性强的函数一样,我们创建一个函数后,再去调用这个函数.在学习J2ee规范JSTL标签这一节的时候,同样我们可以根据自己的需要构造自己的标签库,再去使用自己定义的这个标签. JSTL自带的标签功能时非常强大的,但是不能完全满足我们的需要,开发标签首先是需要开发标签对应的功能类,就和写函数一样,这个函

自定义标签库开发与el表达式

1.自定义标签库的开发自定义标签库主要用于移除jsp页面中的java 代码. 步骤一:编写一个实现Tag接口的类(建议继承TagSupport),把java代码一直到这个类中. package cn.soldier.tag; import java.io.IOException; import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport; public class viewIP extends

JSTL自定义标签

这节我们总结一下JSTL自定义标签相关内容. 1. 自定义标签简介 自定义标签主要用于移除JSP页面中的java代码.Jsp页面主要是用来显示给前台的,如果里面有过多的java代码的话,会显得很乱,但是没有java代码也无法获取相关数据或完成相关操作.那么这时候我们就可以自己定义一个标签,来完成需要用java代码完成的事情,这样Jsp页面就会清洁很多,可读性也更强.JSP中使用自定义标签移除只需要完成以下两个步骤: 1)编写一个实现Tag接口的java类(标签处理类): 2)编写标签库描述符(t

JSTL标准标签库详解

JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的.在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库.JSTL标签库可分为5类: q        核心标签库 q        I18N格式化标签库 q        SQL标签库 q        XML标签库 q        函数标签库 本章将对这些内容一一讲述. 9.1 核心标签库 J