首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法加载标记处理程序类

问无法加载标记处理程序类
EN

Stack Overflow用户
提问于 2016-03-02 14:41:15
回答 1查看 7K关注 0票数 1

我在标签内有一个类,它习惯于使用tld文件

代码语言:javascript
复制
package tag;

import java.io.IOException;
import java.time.LocalDate;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;


public class printDateTag extends TagSupport{

@Override
public int doStartTag() throws JspException {
    try {
        JspWriter writer = pageContext.getOut();
        writer.print(LocalDate.now());
    } catch (IOException ex) {System.out.println(ex);}
    return SKIP_BODY;
}

}

我使用该类的tld文件是

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee          
http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd">
<tlib-version>1.0</tlib-version>
<short-name>tags</short-name>
<uri>/WEB-INF/tlds/tags</uri>


<tag>
    <name>printDate</name>
    <tag-class>tag.printDateTag</tag-class>
</tag>

​

有错误的jsp是这样的

代码语言:javascript
复制
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="ta" uri="/WEB-INF/tlds/tags.tld"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <ta:printDate/>
    <a href="index">go</a>
</body>
</html>

在<ta:printDate/>中,我有一个错误,无法为标记"ta:printDate“加载标记处理程序类"tag.printDateTag”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-02 14:58:08

根据你的代码,

看起来您的tld文件配置不正确,

见下面我尝试过的代码,

printDateTag.java

代码语言:javascript
复制
package tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class printDateTag extends TagSupport{
    @Override
    public int doStartTag() throws JspException {
        try {
            JspWriter writer = pageContext.getOut();
            writer.print("<u>Hello From Tag</u>"); //  <u>Hello From Tag</u>... it will display on JSP page
        } catch (IOException ex) {System.out.println(ex);}
        return SKIP_BODY;
    }
}

tags.tld

代码语言:javascript
复制
<?xml version="1.0" encoding="ISO-8859-1" ?>  
<!DOCTYPE taglib  
        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"  
    "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">  

<taglib>  

  <tlib-version>1.0</tlib-version>  
  <jsp-version>1.2</jsp-version>  
  <short-name>simple</short-name>  
 <!--  <uri>http://tomcat.apache.org/example-taglib</uri> -->  
  <uri>/WEB-INF/tlds/tags</uri>
<tag>
    <name>printDate</name>
    <tag-class>tag.printDateTag</tag-class>
</tag> 

</taglib>  

test.jsp

代码语言:javascript
复制
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="ta" uri="/WEB-INF/tlds/tags.tld"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <ta:printDate/>
    <a href="index">go</a>
</body>
</html>

产出:

​

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35750319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档