我在 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
我尝试删除一个并尝试使用其前缀而不是另一个,但它也失败了,其主要原因是什么:
最佳答案
我遇到此问题的唯一一次是当我将两个标记库设置为前缀“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 中通过转到“服务”->“服务器”->{您的 tomcat 实例}->“Web 应用程序”->{右键单击应用程序名称}->“取消部署”来完成。
您还可以从工作目录和 Web 应用程序文件夹中的 Tomcat 文件夹中删除它来完成相同的操作。
关于java - 如何在同一个JSP中使用jSTL/functions和jSTL/fmt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20526237/