【问题标题】:The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application [duplicate]绝对 uri:http://java.sun.com/jstl/core 无法在 web.xml 或随此应用程序部署的 jar 文件中解析 [重复]
【发布时间】:2012-04-16 02:30:41
【问题描述】:

我需要一些帮助,我想做一个程序并使用了

if(session.getAttribute("logged")!="1"){ 
 String err="You must be logged in!!"; 
 request.setAttribute( "error", err ); 
 String nextJSP = "/login.jsp"; 
 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP); 
dispatcher.forward(request,response); }

%>

在一个jsp中,但是老板让我用jstl所以我改成:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
 <c:if test="${session.getAttribute('logged')!=null}"> 
      <jsp:forward page="login.jsp">
      </jsp:forward>
 </c:if>
 <c:if test="${session.getAttribute('logged')==null}">
      <jsp:forward page="princ.jsp"> </jsp:forward>
 </c:if>

我得到一个严重的错误:

 "org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application " 

我在互联网上搜索了一些修复,我已经将 javax.servlet.jsp.jstl-api-1.2.1-javadoc.jar 放在我的库中,甚至将 javaee.jar 放在 Tomcat 库中,但仍然得到没有解决这个问题,有人可以帮助我吗? PS:我有 Eclipse Java EE IDE for Web Developers.(INDIGO) Tomcat 7.08

【问题讨论】:

    标签: eclipse jsp jstl taglib


    【解决方案1】:

    我认为你应该包括jstl-1.2.jar

    【讨论】:

    • 没有帮助 :(,不过还是谢谢
    【解决方案2】:

    您的 taglib URI 错误。

    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    

    此 URI 来自旧的和 EOL 的 JSTL 1.0 库。从 JSTL 1.1 开始,您需要在路径中添加一个额外的 /jsp,因为标签库的内部工作方式发生了变化,因为 EL 部分已从 JSTL 移动到 JSP:

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

    此外,您尝试放入 /WEB-INF/lib 的 JAR 文件是错误的。 javax.servlet.jsp.jstl-api-1.2.1-javadoc.jar 仅包含 JSTL javadocs,javaee.jar 包含整个 Java EE API,这可能会被淘汰,因为 Tomcat 已经附带了它的一部分(JSP/Servlet),可能是 conflict

    全部删除。您需要jstl-1.2.jar 文件。

    另见:

    【讨论】:

    • taglib 更改后仍然出现同样的错误,我要查看 wiki 页面以获取一些信息,也许我会以某种方式解决它,谢谢 :D
    • 感谢您提供指向 jstl-1.2.jar 文件的链接。我现在尝试了几个文件,说它们是 1.2,但它们不起作用。谢谢你
    【解决方案3】:

    另外,代替

    <c:if test="${session.getAttribute('logged')!=null}">  
    

    使用以下之一

    <c:if test="${sessionScoped.logged != null}">  
    <c:if test="${sessionScoped[logged] != null}">
    <c:if test="${logged != null}">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-31
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      相关资源
      最近更新 更多