一尘不染

绝对uri:http://java.sun.com/jstl/core不能在web.xml或与此应用程序一起部署的jar文件中解析

jsp

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

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:我有针对Web开发人员的Eclipse
Java EE IDE。(INDIGO)Tomcat 7.08


阅读 856

收藏
2020-06-08

共1个答案

一尘不染

您的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" %>

此外,您尝试放入的JAR文件/WEB-INF/lib是错误的。该javax.servlet.jsp.jstl-api-1.2.1-javadoc.jar是只包含JSTL的javadoc和javaee.jar包含整个Java EEAPI这可能是因为desastreus Tomcat的附带已经(JSP/Servlet的),这可能它的一部分发生冲突。

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

2020-06-08