jstl_开发第一个标签

简介: 前言在我们的日常开发中,虽然标准jstl库能满足我们的大部分需求,但是在没办法满足的时候就需要我们 使用自定的标签,说明这里只演示最简单的标签开发流程,便于熟悉开发流程开发流程结构图编写标签类需要继承TagSupport类或者其他实现了jsptag接口的类或者接口./** * 自定义标签类 * @author Eu

前言

在我们的日常开发中,虽然标准jstl库能满足我们的大部分需求,但是在没办法满足的时候就需要我们
使用自定的标签,

说明

这里只演示最简单的标签开发流程,便于熟悉开发流程

开发流程

结构图

这里写图片描述

编写标签类

需要继承TagSupport类或者其他实现了jsptag接口的类或者接口.

/**
 * 自定义标签类
 * @author EumJi
 *
 */
public class ExampleTag extends TagSupport{

    //复写dostarttag
    @Override
    public int doStartTag() throws JspException {
        try {
            //向浏览器写内容
            pageContext.getOut().print("这是我的第一个标签!");

        } catch (IOException e) {
            e.printStackTrace();
        }
        return super.doStartTag();
    }
}

编写tld文件

<?xml version="1.0" encoding="UTF-8" ?>
<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 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>SimpleTagLibrary</short-name>
    <!-- 路径 -->
    <uri>/example</uri>
    <tag>
        <!-- 标签描述 -->
        <description>Outputs 第一个标签</description>
        <!-- 标签名 -->
        <name>first</name>
        <!-- 标签对应的实体类 -->
        <tag-class>com.jsu.tag.ExampleTag</tag-class>
        <!-- 标签里的内容  
            tagdependent:标签体内容直接被写入BodyContent,由自定义标签类来进行处理,而不被JSP容器解释.
            empty:空标记,即起始标记和结束标记之间没有内容.
            scriptless:接受文本、EL和JSP动作.
            JSP:接受所有JSP语法,如定制的或内部的tag、scripts、静态HTML、脚本元素、JSP指令和动作。
        -->
        <body-content>empty</body-content>
    </tag>

</taglib>

在jsp页面中引入标签并使用

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib uri="/example" prefix="ex" %>>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <h1>测试案例</h1>
    <ex:first/>
</body>
</html>

实验结果

这里写图片描述

更多代码

请移步:源代码

目录
相关文章
|
6月前
|
XML Java 数据格式
J2EE&JSP自定义标签库01&out标签&if标签
J2EE&JSP自定义标签库01&out标签&if标签
|
8月前
|
Web App开发 JavaScript 前端开发
Web组件规范和自定义元素
Web组件规范和自定义元素
|
11月前
thymeleaf 的 th:each 标签示例
thymeleaf 的 th:each 标签示例
|
Java
核心标签是最常用的 JSTL标签
核心标签是最常用的 JSTL标签
41 0
|
区块链
JSTL格式化标签
JSTL格式化标签
51 0
|
XML SQL Java
JSTL 标签库,以及 out 和 set 标签|学习笔记
快速学习 JSTL 标签库,以及 out 和 set 标签
116 0
JSTL 标签库,以及 out 和 set 标签|学习笔记
|
XML 开发框架 Java
自定义JSTL函数
由于 jstl 函数 字符串替换不支持正则表达式 所以想用java String的 replaceAll进行替换 需要自定义 jstl函数
96 0
自定义JSTL函数
|
关系型数据库
bboss标签库cell标签格式化数字实例
bboss标签库cell标签格式化数字实例 带double类型的po对象定义: package test; public class TestBean { private String id; private String name; private TestBean i...
638 0