java - 无法在 Java 中为自定义标记加载标记处理程序类

标签 java jsp servlets custom-tags

我在 Java 中使用自定义标签时出现错误。让我在下面详细说明所涉及的文件:

我的tag.tld(路径为:\WEB-INF\tlds\tag.tld)内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" 
                        "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">


<taglib>
<tlibversion>0.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>message</shortname>

<tag>
<description>StringReverseTag</description>
<name>string</name>
<tag-class>mytag.StringReverseTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>data</name>
<required>true</required>
</attribute>
</tag>
</taglib>

ReverseEx.jsp

<%@page contentType="text/html" pageEncoding="UTF-8" language="java"%>
<!DOCTYPE html>
<%@taglib uri="/WEB-INF/tlds/tag.tld" prefix="jen" %> 
<jen:string data="EARTH"/>

<html>
<head>
<title>Tag Example</title>
</head>
<body>
</body>
</html>

辅助类:

package chap4;

import java.io.IOException;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;

public class StringReverseTag extends SimpleTagSupport{
    private String data;
    public void setData(String data) {
    this.data=data;
    }

    @Override
    public void doTag() throws JspException, IOException{
        JspWriter out = getJspContext().getOut();
        StringBuffer sb= new StringBuffer(data);
        sb.reverse();
        out.print(sb);
    }
}

我得到的错误如下:

org.apache.jasper.JasperException: file: ...Struts/Struts/build/web/ReverseEx.jsp(10,0) PWC6032: Unable to load tag handler class "mytag.StringReverseTag" for tag "jen:string" org.apache.jasper.JasperException: PWC6032: Unable to load tag handler class "mytag.StringReverseTag" for tag "jen:string" ...Struts/Struts/build/web/ReverseEx.jsp(10,0) ...Struts\Struts\nbproject\build-impl.xml:924: Java returned: 1 BUILD FAILED (total time: 2 seconds)

我做错了什么?

最佳答案

在你的 tag.tld 文件中你写:

<tag-class>mytag.StringReverseTag</tag-class>

这意味着:您的类 StringReverseTag 应该在 myTag 包中。 但是在你的 StringReverseTag 代码中我可以看到你有 chap4 作为包!

要解决您的问题,只需更改:

<tag-class>mytag.StringReverseTag</tag-class>

<tag-class>chap4.StringReverseTag</tag-class>

关于java - 无法在 Java 中为自定义标记加载标记处理程序类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352250/

相关文章:

java - 如何将变量从 servlet 传递到 jsp 页面?

tomcat - 在 java 中使用 mysql 执行 Preparedstatment 时出错?

java - 在android中保存rtsp流?

java - StackOfIntegers 给出奇怪的结果

java - 在 Scriptlet 中访问 JSTL 变量

asp.net-mvc - JSP 相当于 ASP.NET MVC 部分 View ?

java - 如何将嵌套 SQL 转换为 HQL

java - 如何在 Linux shell 中接受左/右/上/下箭头输入?

java - 如何将microsoft access数据库连接到jsp tomcat?

java - 如何在每次迭代后发送成功消息