自定义标签库_tag

1)最简单的标签库

  1,继承Tag接口,重写doEndTag()方法,返回类型不同后面流程不一样

    想要jsp的内容必须重写了setPageContent()方法

    再JspWriter out = pageContent.getOut();

package myTag;

import java.io.IOException;
import java.util.ResourceBundle;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;

public class Copyright implements Tag {
    private PageContext pageContext;
    private Tag parent;

    @Override
    public int doEndTag() throws JspException {
        // TODO Auto-generated method stub
        JspWriter out = pageContext.getOut();
        try {
            out.println("<div align=center style=‘line-height:22px;"
                    + "font-size:12px;‘>");
            out.println(ResourceBundle.getBundle("copyright").getString(
                    "copyright"));
            out.println("</div>");
        } catch (IOException e) {
            throw new JspException(e);
        }

        return EVAL_PAGE;
    }

    @Override
    public int doStartTag() throws JspException {
        // TODO Auto-generated method stub
        return SKIP_BODY;
    }

    @Override
    public Tag getParent() {
        // TODO Auto-generated method stub
        return this.parent;
    }

    @Override
    public void release() {
        // TODO Auto-generated method stub

    }

    @Override
    public void setPageContext(PageContext pc) {
        // TODO Auto-generated method stub
        this.pageContext = pc;
    }

    @Override
    public void setParent(Tag t) {
        // TODO Auto-generated method stub
        this.parent = t;
    }
}

  2,在WEB-INF/目录下创建tld文件(new/other创建

  bodycontent有三个值,empty表示不可以有标签体,jsp表示可以有标签体,tagdependent可以有但不会执行

<taglib>
 <tlib-version>1.0</tlib-version>
 <jsp-version>1.2</jsp-version>
 <short-name>taglib</short-name>
 <tag>
     <name>copyright</name>
     <tagclass>myTag.Copyright</tagclass>
     <bodycontent>JSP</bodycontent>
 </tag>
</taglib>

  3,由于我用了资源文件

  ResourceBundle.getBundle("copyright").getString("copyright")

    所以src文件下一定要有这个文件的copyright属性

  4,在jsp中首先声明,<%@ taglib uri="WEB-INF/xxx.tld" prefix="taglib">

    下面就可以<taglib:copyright/>

时间: 2024-10-09 21:26:10

自定义标签库_tag的相关文章

自定义标签库开发与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

深入分析JavaWeb Item25 -- 自定义标签开发案例和打包自定义标签库

一.开发标签库案例 1.1.开发防盗链标签 1.编写标签处理器类:RefererTag.java package me.gacl.web.simpletag; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import jav

JSP自定义标签库

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

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

学习笔记_Java_day13_JSTL_自定义标签库(9)

自定义标签 1 自定义标签概述 1.1 自定义标签的步骤 其实我们在JSP页面中使用标签就等于调用某个对象的某个方法一样,例如:<c:if test=””>,这就是在调用对象的方法一样.自定义标签其实就是自定义类一样! l  定义标签处理类:必须是Tag或SimpleTag的实现类: l  编写标签库描述符文件(TLD): SimpleTag接口是JSP2.0中新给出的接口,用来简化自定义标签,所以现在我们基本上都是使用SimpleTag. Tag是老的,传统的自定义标签时使用的接口,现在不建

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

自定义标签库开发(简单标签开发)

实现Tag接口,BodyTag接口,IterationTag接口的标签开发技术一般称为传统标签开发技术. 实现SimpleTag接口的标签开发技术,一般称为简单标签开发技术. JSP2.0里新增了SimpleTag. 由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编写和调用的SimpleTag接口来实现标签的功能.实现SimpleTag接口的标签通常称为简单标签.简单标签共定义了5

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.

EL表达式--自定义标签库

EL(Expression Language) 目的:为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法. EL表达式函数,主要功能是完成对数据的修改,统一化格式: 开发步骤 : 1.开发函数处理类,处理类就是普通的类:每个函数对应类中的一个静态方法: 2. 建立TLD文件,定义表达式函数 3.在WEB.XML文件中配置:(可省略) 4.在JSP页面内导入并且使用 案例说明 1.开发函数处理类 packag