在web.xml中声明JSP taglib指令
我似乎记得读过可以声明taglib指令,例如:
在web.xml中。 这消除了在使用taglib的每个JSP文件中复制此伪指令的需要。 有人能告诉我如何将这些指令添加到web.xml中吗?
web.xml中的taglib
元素与上面的taglib
指令有不同的用途。
正如David所说,每页都需要taglib
指令。
如果您有许多使用常见标记库的页面,则可以通过将taglib指令放入包含文件并在每个页面中包含此文件来快捷方式。 但无论你怎么做,taglib指令都必须以某种方式出现在页面上。
您需要在每个页面上包含的标记如下所示:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
如果您在自定义位置具有自定义标记库,则还可以指定相对于Web应用程序根目录的位置:
<%@ taglib prefix="ex" uri="/taglib.tld" %>
进一步阅读taglib指令
web.xml中的taglib
指令将标记uris映射到taglib的物理位置。 从JSP 2.0开始,它是可选的,因为兼容容器将在一组标准位置中查找以尝试自动发现taglib:/ WEB-INF及其子目录,/ META-INF以及JAR文件。
在web.xml中看起来像这样:
http://www.example.com/taglib /taglib.tld
并且在JSP页面中像这样引用taglib(每个页面上的taglib指令是不可避免的!):
<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>
这相当于我为上面的taglib指令提供的第二个例子。 最大的区别在于您如何指向taglib位置。
此页面包含更多信息。
对不起,你有点误会。 如果页面使用taglib,则必须在页面上为其指定taglib指令。 您可以将公共taglib指令放在一个include文件中,所有页面都包含include指令,但在编译时,taglib指令必须在那里。
我更喜欢在web.xml中没有taglib元素,而是让taglib指令指定在WEB-INF / lib中的taglib jar文件内的TLD中的“uri”元素中使用的URI值。 。