如何在JSP taglib <tag-file>元素中定义一个示例?</tag-file>

时间:2009-12-14 11:10:07

标签: tomcat jsp-tags

我正在为我们的设计师编写一堆JSP标签。在我的.tld文件中,我有一些<tag>和更多<tag-file>元素。

现在,我想给标签库的用户一些关于如何使用它们的例子。根据{{​​3}},<tag-file><tag>元素都可以包含<example>元素。

这适用于<tag>,但每当我尝试在<tag-file>中放置示例时,Eclipse和Tomcat都会抛出错误。

有人有过这方面的经验吗?

2 个答案:

答案 0 :(得分:1)

Servlet 2.4 / JSP 2.0中引入了<example>元素。

除了将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的appserver?例如Tomcat 5.x或更新版本。如果没有,那么你需要升级。如果是这样,那么这个问题:在web.xml中声明了一个正确的Servlet版本(至少2.4)?如果没有,那么请确保您这样做:

<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或更改web.xml中的Servlet API版本声明,那么您需要忍受不能使用<example>元素的事实。

答案 1 :(得分:0)

它适用于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>

...