如何在同一个JSP中使用jstl / functions和jstl / fmt

时间:2013-12-11 17:42:51

标签: java jsp jstl el

我在JSP中导入了两个库jstl/functionsjstl/fmt,如下所示:

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

我尝试使用这两个库来格式化日期,获取字符串的长度 我在运行页面时遇到问题,问题是:

 org.apache.jasper.JasperException: Attempt to redefine the prefix fn to    
 http://java.sun.com/jsp/jstl/functions, when it was already defined as     
 http://java.sun.com/jsp/jstl/fn in the current scope

我试图删除一个并尝试使用它的前缀而不是另一个但它也失败了,主要原因是什么:

1 个答案:

答案 0 :(得分:2)

我遇到这个问题的唯一一次是我将两个taglib设置为前缀“fn”,如下所示:

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

你在你的例子中显然没有这个,但是我冒昧地猜测你在某些时候以这种方式拥有它并编译了jsp。既然您已经解决了问题,那么可能需要重新编译页面/项目。

如果您没有显式取消部署应用程序,我也遇到过Tomcat“持有”旧版本。这可以在Netbeans中完成,方法是转到Services-&gt; Servers-&gt; {your tomcat instance} - &gt; Web Applications-&gt; {right click application name} - &gt; undeploy

您也可以将其从工作目录和Web apps文件夹中的Tomcat文件夹中删除,以完成相同的操作。