我目前正在编写一堆 JSP 标签供我们的设计人员使用。在我的 .tld 文件中,我有一些<tag>
和更多的<tag-file>
元素。
现在,我想给标签库的用户一些关于如何使用它们的例子。根据Sun 的文档,<tag-file>
和<tag>
元素都允许有一个<example>
元素。
这适用于<tag>
,但每当我尝试在 Eclipse 和 Tomcat 中放置示例时<tag-file>
都会抛出错误。
有人有这方面的经验吗?
该<example>
元素是在 Servlet 2.4 / JSP 2.0 中引入的。
除了将 taglib 根声明为 JSP taglib 2.0 之外,如下所示
<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/web-jsptaglibrary_2_0.xsd"
version="2.0">
您是否还在使用能够支持 Servlet 2.4 / JSP 2.0 的应用服务器?例如 Tomcat 5.x 或更新版本。如果没有,那么您需要升级。如果是这样,那么这个问题:是否声明了适当的 Servlet 版本(至少 2.4)web.xml
?如果没有,请确保您这样做:
<web-app
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-app_2_4.xsd"
version="2.4">
或者,如果您已经在使用支持 Servlet 2.5 的应用服务器(例如 Tomcat 6.x),那么只需声明 Servlet 2.5 是最新的:
<web-app
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-app_2_5.xsd"
version="2.5">
如果您不想升级 appserver 或更改 中的 Servlet API 版本声明web.xml
,那么您需要接受无法使用该<example>
元素的事实。
它适用于我在 Tomcat 6.0 上。这是我的文件,
<tagtoc name="Configuration Components">
<tag-file>
<description>Get configured value</description>
<display-name>get</display-name>
<name>get</name>
<path>/META-INF/tags/config/get.tag</path>
<example>
<![CDATA[
<config:get key="username" echo="true" />
]]>
<usage>
<comment>
<p>
See config-test.jsp in the example application.
</p>
</comment>
</usage>
</example>
</tag-file>
...