如果你使用的是符合JSP 1.2/Servlet 2.3 的容器,比如Tomcat 4.x 或者更高,你就可以在JSP页面的taglib指令中使用绝对路径而不必在web.xml中指定taglib元素。
对于早于Servlet 2.3 规范的情况,你仍然需要在web.xml中声明所有你所使用的JSP 标签。下面摘自web.xml部署描述符中的代码片断展示了用于Struts应用的典型taglib声明:
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
从Servlet 2.3 之后,标签库的绝对URI 在该库的标签库描述符 (TLD) 文件中指定。比如,下面就是struts-bean.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>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>bean</shortname>
<uri>http://jakarta.apache.org/struts/tags-bean</uri>
任何需要使用这个标签库的页面都可以通过下面的页面级指令来引用它。标签库不需要再在web.xml文件中引用:
<%@ taglib
uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean" %>
如果你在整个应用中使用相同的标签库,你可以使用基本动作中所述的方法,即创建一个包含通用标签库声明指令的包含JSP文件。如果你引用了不需要的标签库,其实也不会有太大的性能损失,所以你可以在每个JSP页面中安全的包含这个文件。如果URI 改变,你将只需要修改一个地方而不是每一个JSP文件。
对于早于Servlet 2.3 规范的情况,你仍然需要在web.xml中声明所有你所使用的JSP 标签。下面摘自web.xml部署描述符中的代码片断展示了用于Struts应用的典型taglib声明:
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
从Servlet 2.3 之后,标签库的绝对URI 在该库的标签库描述符 (TLD) 文件中指定。比如,下面就是struts-bean.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>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>bean</shortname>
<uri>http://jakarta.apache.org/struts/tags-bean</uri>
任何需要使用这个标签库的页面都可以通过下面的页面级指令来引用它。标签库不需要再在web.xml文件中引用:
<%@ taglib
uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean" %>
如果你在整个应用中使用相同的标签库,你可以使用基本动作中所述的方法,即创建一个包含通用标签库声明指令的包含JSP文件。如果你引用了不需要的标签库,其实也不会有太大的性能损失,所以你可以在每个JSP页面中安全的包含这个文件。如果URI 改变,你将只需要修改一个地方而不是每一个JSP文件。