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();
    }
}
AI 代码解读

编写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>
AI 代码解读

在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>
AI 代码解读

实验结果

这里写图片描述

更多代码

请移步:源代码

eumji
+关注
目录
打赏
0
0
0
0
3
分享
相关文章
两步构建 AI 总结助手,实现智能文档摘要
本方案将运用函数计算 FC,构建一套高可用性的 Web 服务,以满足用户多样化的需求。当用户发起请求时,系统内部会自动将包含文本和提示词的信息传递给百炼模型服务,百炼平台将根据后台配置调用相应的大模型服务,对文本数据进行智能识别与解析,最终将总结结果返回给用户。
393 22
云产品评测|安全体检,获奖名单公布!
云产品评测|安全体检,获奖名单公布!
111 0
DataWorks on EMR StarRocks,打造标准湖仓新范式
本文整理自阿里云计算平台产品专家周硕(簌篱)在阿里云DataWorks on EMR StarRocks解决方案介绍中的分享。介绍了阿里云DataWorks与EMR Serverless StarRocks的结合使用,详细阐述了在数据同步、数据消费、数据治理三大场景中的核心能力。DataWorks作为大数据开发治理平台,提供了从数据建模、数据集成、数据开发到数据治理的全链路解决方案,结合StarRocks的高性能分析能力,帮助企业实现OLAP分析、湖仓一体开发及数据综合治理,满足复杂业务场景下的需求,提升数据处理和分析效率。
PHP中实现简单身份验证系统的步骤
【8月更文挑战第31天】在构建Web应用程序时,确保用户身份的合法性和数据的安全性是至关重要的。本文将引导你通过使用PHP语言来实现一个简单的身份验证系统,从数据库设计到前端登录界面的创建,再到后端逻辑的处理,我们将一步步地走过整个流程。无论你是PHP新手还是希望复习相关知识,这篇文章都将为你提供清晰的指导和实用的代码示例。
弹性能力与稳定性技术最新演进 | 2024云栖大会预告
弹性能力与稳定性技术最新演进 | 2024云栖大会
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
版本控制系统的选择:Git vs. Mercurial
【6月更文挑战第20天】Git vs. Mercurial: 两者都是流行的DVCS,Git由Linus Torvalds创建,以其速度和复杂分支管理著称,适合大型项目和有经验的开发者。Mercurial,由Matt Mackall开发,以其简洁命令行和易用性吸引初学者。Git社区更大,扩展更丰富,而Mercurial在某些场景下可能更直观。选择取决于项目需求、团队经验和偏好。
cpplint 新增自定义checker介绍
通过为cpplint新增自定义规则,可以让 cpplint 更加贴合项目的编码规范,从而提高代码的质量和一致性。
221 0
史上最详细Docker安装Mycat中间件 | 实现主从的读写分离
史上最详细Docker安装Mycat中间件 | 实现主从的读写分离
786 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问