我在JSP中导入了两个库jstl/functions
和jstl/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
我试图删除一个并尝试使用它的前缀而不是另一个但它也失败了,主要原因是什么:
答案 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文件夹中删除,以完成相同的操作。