2009-12-24 51 views
3

我通过jspc的ant任务预编译了一些jsp文件,但内置失败。预编译jsp文件发生异常

errers: info.jsp(35,2)的属性前缀FN不对应于任何导入标记库

info.jsp线35:

<c:if test="${fn:length(requestScope.checkDetailInfoList) gt 1}"> 

蚂蚁任务XML:

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

我该如何纠正?

回答

4

您需要确保jsp文件导入JSTL的fn名称空间。你需要一条线,看起来像这样在你的JSP文件:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 

此外,你需要确保JSTL罐(jstl.jarstandard.jar)在你的classpath时碧玉试图编译。

+0

我在包含info.jsp的父页面添加fn“taglib”, 必须在每个页面中声明taglib?但info.jsp页面在tomcat上正确运行 – 2009-12-24 08:46:12

+0

@ Diablo.Wu:您应该包含taglib在每个使用它的页面中。 – Asaph 2009-12-24 13:47:12

2

亚萨的评论是现货。

还有一点需要检查:<fn>标记集是JSTL库的后续版本。也许你有旧版本的jstl.jar和standard.jar需要更新。