我收到错误"HtmlEncoderTag无法解析为类型".定义自定义标签? [英] I got the error "HtmlEncoderTag cannot be resolved to a type" on defining a custom tag?

查看:128
本文介绍了我收到错误"HtmlEncoderTag无法解析为类型".定义自定义标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在定义一个自定义标签"htmlencoder".我有这些文件:

I am defining a custom tag "htmlencoder". I have These files:

WEB-INF/classes/HtmlEncoderTag.jar,具有如下所示的Java代码:

WEB-INF/classes/HtmlEncoderTag.jar ,with a java code like this:

import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class HtmlEncoderTag extends BodyTagSupport{
    //....
}

WEB-INF/htmlencoder.tld:

WEB-INF/htmlencoder.tld :

<?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/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name></short-name>
 <tag>
    <name>htmlencode</name>
    <tag-class>HtmlEncoderTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
</taglib>

index.jsp:

index.jsp:

<%@ taglib uri="WEB-INF/htmlencoder.tld" prefix="htmlencoder"%>
<head>
  <title>Watch out you sinners...</title>
</head>
<html>
  <body bgcolor="white">
    <htmlencoder:htmlencode><script <% //the error refers to this line %>
      type="javascript">BadStuff()</script></htmlencoder:htmlencode>
  </body>
</html>

运行页面时出现错误"HtmlEncoderTag无法解析为类型",并且显示行index.jsp:7(如上所述).

I got the error "HtmlEncoderTag cannot be resolved to a type" when i run my page and it shows me the line index.jsp:7 ( I mentioned above).

我该怎么办?

推荐答案

我找到了答案.我不确定是否有必要,但是我的问题是通过以下方式解决的: 您必须将标签类放入包装中.例如,您的HtmlEncoderTag.jar文件应放置在WEB-INF/MyTag/中,并且应如下所示:

I found the answer. I'm not sure it is necessary, but my problem solved this way: You have to put your tag class in a package. for example, your HtmlEncoderTag.jar file should be placed in WEB-INF/MyTag/ and should be like this:

pckage MyTag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class HtmlEncoderTag extends BodyTagSupport{
    //....
}

您的tld文件将如下所示:

And your tld file will be like this:

<?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/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name></short-name>
 <tag>
    <name>htmlencode</name>
    <tag-class>MyTag.HtmlEncoderTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
</taglib>

这篇关于我收到错误"HtmlEncoderTag无法解析为类型".定义自定义标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆