我用的是eclipse3.2+tomcat5.5+jdk1.5
以下是代码:为什么运行不了
 还有为什么我的eclipse老是报错,然后重写一篇就好了(两次代码是一样的)为什么???
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<%@ page import="java.util.*"%><jsp:useBean id="now" class ="java.util.Date"/>
<fmt:setLocale value="zh-cn"/>
<html>
<head>
<title>jstl示例</title>
</head>
<body>
<h3>jstl示例</h3>
<%
now =new  Date();
out.println(now);
Collection customers=new ArrayList();
customers.add(new String("customer1"));
customers.add(new String("customer2"));
customers.add(new String("customer3"));
request.setAttribute("custmoers",customers);
%>
<h4>输出请求对象中的所有客户</h4>
<!-- 使用jstl标签完成页面输出任务 -->>
<c:set var="customers" scope="session"
value="${requestScope.coustomers}"/>
<c:forEach var="customer" items="${customer}">
 <c:out value="${coustomer}"/>
 <br>
 </c:forEach>
 <br>
 <!-- jstl标签格式化输出时间 -->
 <fmt:timeZone value="GMT">
 <fmt:formatDate value="${now}" type ="both" dateStype="full"
   timeStype="full"/>
   </fmt:timeZone>
</body>
</html>

解决方案 »

  1.   

    以下是错误:
    严重: Servlet.service() for servlet jsp threw exception
    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
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
    at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
    at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
    at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:423)
    at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
    at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1556)
    at org.apache.jasper.compiler.Parser.parse(Parser.java:126)
    at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
    at org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:155)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Unknown Source)
      

  2.   

    <jsp:useBean id="now" class ="java.util.Date"/>
    这个你是干什么啦?
    导包的话用<%@ page import="java.util.Date"  %>
      

  3.   

    这是我从书上抄的一个例子
       上面就是怎么写的
    我是干学jsp 也不太懂
      

  4.   


    请确认你TOMCAT的版本
    在servlet 2.4中taglib的引用为:
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"% >
    而在servlet 2.3 是用
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"% >
      

  5.   

    可能是你tomcat编译jsp文件的问题你第一次写的时候他没有完全编译,当你又写了一次了他可能完全编译了写完的jsp文件在重新运行之前最好删除一下work
      

  6.   

    tomcat有的时候是没有编译的所有我们在给项目打补丁的时候,都要删除一下work每次jsp文件有问题的话,可以先删除下work,让tomcat重新编译一下。
      

  7.   

    把c.tld放到WEB-INF,然后:<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>试试
      

  8.   

    为啥为啥,为啥不把jstl.jar和standard.jar放到WEB-INF/lib/
    反正我看一个个错误的问题是因为没找到taglib定义。要是一直搞不定,就看我们教程里的例子,我们在tomcat-5.5.26下测试是ok的。
    http://test.family168.com/tutorial/jsp/html/jsp-ch-09.html#jsp-ch-09-02
      

  9.   

    哦,你们书上没写用jstl要把某某东西放到某某里面吗?
    干用就没戏滴。我们例子里倒是都有,要进论坛登录以后才能下载。
    http://test.family168.com/bbs/index.asp?boardid=5
      

  10.   

    将standard.JAR文件解压,打开里面的TLD文件来看看正确的URI,这样就解决了
      

  11.   

    我把jstl.jar和standard.jar放到WEB-INF/lib/ 以后
      还是出错??我看了你们教程的例子
      我试了  在我这也可以运行
      

  12.   

    我已经将那两个文件放到WEB-INF/lib中
      
      还有我用的是eclipse3.2
      

  13.   

    如果还是找不到就有点儿诡异了。你写的uri是jstl-1.0的uri,我们例子中是1.1,要不你按照我们的例子换成1.1的uri试一下?
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    这个是jstl-1.1的uri,比你用的1.0的uri多一个“jsp/”
      

  14.   

      我忘了告诉你,
       我是在你们的例子上加上了"/jsp"才可以运行的
      

  15.   

    Parser.java是你定义的控制类么?看看是不是代码有差错
      

  16.   

    产生问题的原因:
    一般都是缺少jstl的jar包(位于WEB-INF/lib文件夹)解决方法:
    检查你的Web应用中WEB-INF/lib目录中(如果没有lib目录,可手动创建一个)是否有jstl.jar
    和standard.jar两个jar包,如果没有把它们复制到lib即可。
    如果你不知道去哪找这两个包,请多多使用google/baidu!
      

  17.   

    分析错误方法
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
    at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316) 

    诸如此类的东西
    你从上往下看,最右边括号里面的类,(比如(DefaultErrorHandler.java:50))找第一个你自己编写的那个,然后从里面发现错误。因为你只发了JSP页面的代码,我无法帮你查证那个类出了问题。
    第二个问题,eclipse报错还是tomcat报错啊?具体怎么报错的啊
      

  18.   

    用相对路径.
    <%@ taglib prefix="c" uri="/WEB-INF/c.tld" %> 在项目右键-->MyEclipse-->有个add JSTL libe....什么选项的.选 一下.里边选 个JSTL1.1然后确定就可以了.
      

  19.   

    charset=gb2312" 改成 UTF-8 就OK了,不信你试试