【问题标题】:Layout of custom tag handlers within a package包内自定义标签处理程序的布局
【发布时间】:2013-11-21 14:07:08
【问题描述】:

我有一个自定义标记处理程序 test/StubCTag.java,它是一个简单标记。有一个 testing.tld 文件定义了 ctag:-

<?xml ... ?>
<taglib ...>
...
<tag>
<name>stubctag</name>
<tag-class>test.StubCTag</tag-class>
</tag>
</taglib>

将其打包为 jar 存档时,文件的布局如下:-

testing.jar
-----------
/META-INF/testing.tld
/META-INF/classes/test/StubCTag.class

在带有前缀 testprefix 的 jsp 页面中使用自定义标签时,浏览器显示“无法为标签“testprefix:stubctag”加载标签处理程序类“test.StubCTag”。我已经仔细检查了存档,并且存在 tld 和类文件。我在网上搜索,但没有得到任何关于将标签处理程序作为库的一部分放置的任何内容。

谁能告诉我如何将类文件打包为自定义标签库?

【问题讨论】:

  • 您能否在您的 tld 中发布 URI 以及如何在您的 jsp 中声明它?
  • URI = testexample.com & 在 jsp 中它使用 taglib 并将 urn 设置为 URI。
  • URI 是http://testexample.com,在这里澄清我之前的评论。
  • http://testexample.com" prefix="testprefix" %>是我在jsp中使用标签的方式。
    jar文件位置在war文件中我在 /WEB-INF/lib 中包含了 testing.jar 的 web 应用程序。
    我用相同的 java 版本重新编译了代码。重新打包库和 Web 应用程序。重新部署战争。同样的错误。
    我在 jar 中打包了一个虚拟的 .tag 文件,它在同一个 jsp 上运行良好。错误仅针对 testprefix:stubctag 显示。

标签: java jsp java-ee-6 custom-tags


【解决方案1】:

你能以这种方式包含你的标签库吗:

<%@ taglib uri="uri element in tld" prefix="testprefix" %>

【讨论】:

  • 我在 jsp 页面中输入了这样的 testexample.com" prefix="testprefix" %>。同样的错误。
  • 您在 "testexample.com" 之后的声明中有一个额外的 ;
  • http://testexample.com" prefix="testprefix" %> 这是我写的,我刚刚开始熟悉评论,所以请多多包涵我的错误输入
  • 你的 jar 在你的 webapp WEB-INF/lib 文件夹中?
  • 你用的是什么应用服务器,有哪些Java/jstl/jsp版本?
【解决方案2】:

有问题的 jar 包含标签处理程序类和标签。 我将文件布局更改为

/META-INF/testing.tld
/test/StubCTag.class

休息保持不变。没有更多错误,jsp 页面按预期显示输出,因此问题解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多