• 自定义标签 tld


    初学者可能在不借助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-tomcatworkCatalinalocalhostwebDemoorgapachejsp 这个目录下,所以我们还需要将HelloWorldTag.class文件copy一份进去,这样就可以了

  • 相关阅读:
    simpleDateFormat日期格式转换
    repo总结
    jrtplib使用注意事项
    iOS Crash获取闪回日志和上传server
    Android自己定义组件系列【5】——高级实践(1)
    TimesTen更改CacheGroup管理用户ORACLE结束和TT结束password【TimesTen操作和维修基地】
    Cordova探险系列(三)
    libpomelo 增加编译静态库cocos2d-x xcode 工程
    flex4 一些项目使用的技术
    2015华为德州扑克入境摘要——软体project
  • 原文地址:https://www.cnblogs.com/zhoujiahong/p/4961492.html
Copyright © 2020-2023  润新知