我需要一些帮助,我想做一个程序并使用
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
您的taglib URI错误。
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
该URI来自旧的EOL版本的JSTL 1.0库。从JSTL 1.1开始,您需要/jsp在路径上增加一些内容,因为将EL部件从JSTL移至JSP,从而更改了标签库的内部工作方式:
/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的),这可能它的一部分发生冲突。
/WEB-INF/lib
javax.servlet.jsp.jstl-api-1.2.1-javadoc.jar
javaee.jar
全部删除。您需要jstl-1.2.jar文件。