预编译JSP文件时出现异常。

3
我通过jspc的ant任务预编译了一些jsp文件,但是构建失败了。
错误信息: info.jsp(35,2) 属性前缀fn不对应任何导入的标签库
info.jsp第35行:
<c:if test="${fn:length(requestScope.checkDetailInfoList) gt 1}">

Ant任务XML:

<jasper validateXml="false" uriroot="${basedir}/WebRoot" 
            webXmlFragment="${dir.WEB-INF}/generated_web.xml" 
            outputDir="${dir.WEB-INF}/src" />

我应该如何纠正?

2个回答

4
您需要确保JSP文件导入了JSTL的fn命名空间。您需要在您的jsp文件中加入类似下面这样的一行代码:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

此外,在 jasper 尝试编译时,您需要确保 JSTL jars(jstl.jarstandard.jar)已经在您的类路径中。

我在包含info.jsp的父页面中添加了“taglib”函数,是否需要在每个页面中声明taglib?但是info.jsp页面在Tomcat上运行正常。 - Diablo.Wu
@Diablo.Wu:你应该在每个使用它的页面中包含taglib。 - Asaph

2

Asaph的评论很到位。

还有一件事要检查:<fn>标签集是JSTL库的后期添加。也许您有一个需要更新的旧版本jstl.jar和standard.jar。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接