我正在尝试使用JSPx(JSP的纯XML语法),并运行到看起来应该工作但不工作的地方。我正在使用jsp:root元素中的名称空间声明导入标记库,然后在后面的元素和el函数中使用这些标记库:
<jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/ xmlns:c="urn:jsptld:/WEB-INF/tld/c.tld" xmlns:fn="urn:jsptld:/WEB-INF/tld/fn.tld"> ... <c:if test="${fn:length(list) > 0"> ... </c:if> ... </jsp:root>
我得到一个异常:“属性前缀fn不对应于任何导入的标记库”。其他页面工作正常,但此页面的不同之处在于它使用了标记库中包含的一些EL函数。
是否有其他类型的导入需要将这些taglib前缀引入EL函数调用可见的范围?
为什么不使用完整的TLD URI?你可以找到 here 有效JSTLTLD URI的概述(单击您感兴趣的任何JSTL taglib以获取有效声明示例)。
要确保:您已经放置了JSTLJAR文件( jstl.jar 和/或 standard.jar ,取决于JSTL版本,在1.1之前它都是,而在1.2中它只是 杰斯罐 )在课堂上你做到了 不 提取它们,不要使类路径混乱和/或 web.xml 像一些糟糕的在线教程所说的那样,文件和声明松散?
jstl.jar
standard.jar
杰斯罐
web.xml