博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义标签 tld
阅读量:5102 次
发布时间:2019-06-13

本文共 1701 字,大约阅读时间需要 5 分钟。

初学者可能在不借助IDE工具的情况下 编写自定义标签库 tld  程序可能遇到找不到class 的错误,下面讲解一下如何解决该问题

步骤一:新建一个自定义标签类 HelloWorldTag,该类放到src目录下或子目录下

import javax.servlet.jsp.tagext.SimpleTagSupport;

import javax.servlet.jsp.JspException;
import java.io.IOException;
import java.util.Date;
public class HelloWorldTag extends SimpleTagSupport{
    public void doTag() throws JspException,IOException{
        getJspContext().getOut().write("Hello World" + new Date());
    }
}

步骤二:新建一个tld 文件   mytaglib.tld,该文件只要放到WEB-INF目录下或其子目录下,程序运行是会自动去扫描tld文件,因此可以不再web.xml中进行配置

<?xml version="1.0" encoding="gbk" ?>

<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">
    <tlib-version>1.0</tlib-version>
    <short-name>mytaglib</short-name>
    <uri>http://www.oiyuepu.com/mytaglib</uri>
    <tag>
        <name>helloWorld</name>
        <tag-class>HelloWorldTag</tag-class>
        <body-content>empty</body-content>
    </tag>
</taglib>

步骤三:新建一个HelloWorldTag.jsp文件,该文件放到工程目录下,uri可以自定义,没有什么讲究,但是引用要对应

<%@ page contentType="text/html; charset=gbk" language="java" errorPage="error.jsp"%>

<%@ taglib uri="http://www.oiyuepu.com/mytaglib" prefix="mytag"%>
<!doctype html>
<html>
    <head>
        <title> 自定义标签示范 </title>
    </head>
    <body bgcolor="#ffffc0">
        <h2>下面显示的是自定义标签的内容</h2>
        <mytag:helloWorld />
    </body>
</html>

步骤四:通过cmd  javac 编译 第一步所建的类HelloWorldTag,编译好之后需要将class文件copy到WEB-INF目录下classes文件夹中

很多人在这一步就认为可以直接运行了,结果出现ClassNotFundation的错误,所以我们仔细想一下,jsp文件在编译的时候,他的class文件并不在工程目录下,而是在apache-tomcat\work\Catalina\localhost\webDemo\org\apache\jsp 这个目录下,所以我们还需要将HelloWorldTag.class文件copy一份进去,这样就可以了

转载于:https://www.cnblogs.com/zhoujiahong/p/4961492.html

你可能感兴趣的文章
[Swift]LeetCode20. 有效的括号 | Valid Parentheses
查看>>
[Guitar self-practising] 【吉他练习王-节奏练习】曲目1 基本扫弦节奏练习
查看>>
计算机运算方法与机器指令
查看>>
[Algorithm] Delete a node from Binary Search Tree
查看>>
[Recompose] Pass a React Prop to a Stream in RxJS
查看>>
分治法--二分查找、乘方、斐波那契数
查看>>
利用CSS3 animation绘制动态卡通人物,无需使用JS代码
查看>>
Java Applet Reflection Type Confusion Remote Code Execution
查看>>
WordPress Cart66 Lite插件跨站请求伪造漏洞
查看>>
requestLayout invalidate postInvalidate
查看>>
Objective-C GCD深入理解
查看>>
关于static的使用
查看>>
linux basename学习
查看>>
Java - 单例模式
查看>>
Java中String, StringBuilder和StringBuffer
查看>>
人工智能-机器学习之seaborn(读取xlsx文件,小提琴图)
查看>>
在 Linux 中怎样将 MySQL 迁移到 MariaDB 上
查看>>
html屏蔽鼠标右键
查看>>
javascript教程现有Web App模式的问题以及挑战
查看>>
Object类
查看>>