2012-11-09 29 views
1

每當我試着雖然使用</c:forEach>迭代器我得到以下錯誤在JSP的UI我的模型對象上進行迭代沒有運行?循環動態的Java Web項目</c:forEach>

另外我在eclipse上運行我的J2EE預覽項目。

我的WEB-INF/lib確實有相關的庫。

由於

    <c:if test="${empty agendaList}"> 
        <div style="float: left!important; margin: 10px;">No Data Please use Upload Functionality</div> 
        </c:if> 
        <input type="button" class="eventBtn uploadData" value="Import Master.xlsx >>" 
         style="float: right; margin: 10px; background-color: #88b3da" /> 
        <div class="clearBoth"></div> 
        <div id="accordion"> 
         <c:forEach var="agenda" items="${agendaList}" varStatus="rowCnt"> 
          <input id="agendaName${agenda.agendaDetail.agendaId}" type="hidden" value="${agenda.agendaDetail.agendaName}"/> 
          <div id="agendaItem${agenda.agendaDetail.agendaId}" class="agendaItem"> 
           <div class="accHead"> 
            <div class="agendaTime">${agenda.agendaDetail.startTime}<br />${agenda.agendaDetail.endTime}</div> 
            <div class="agendaName">${agenda.agendaDetail.agendaName}</div> 
            <div style="padding-top: 5px;"> 
             <a href="javascript:void(0)" class="orangeLink accEdit">Edit</a> 
             <span class="openCloseImg"></span> 
            </div> 
           </div> 
           <div class="accBody"> 
            <table> 
             <tr> 
              <td class="leftTD">Date</td> 
              <td style="padding: 10px 0;"> 
                <input id="datepicker${agenda.agendaDetail.agendaId}" type="text" value="${agenda.agendaDetail.startDate}" disabled="disabled"/> 
                <script> 
                var cntd=${agenda.agendaDetail.agendaId}; 
                initialiseDatepick(cntd); 
                </script> 
              </td> 
             </tr> 
             <tr> 
              <td class="leftTD">Start Time</td> 
              <td style="padding: 10px 0;"> 
               <input id="startTime${agenda.agendaDetail.agendaId}" type="text" value="${agenda.agendaDetail.startTime}" disabled="disabled"/> 

               <span class="leftTD">End Time</span> 

               <input id="endTime${agenda.agendaDetail.agendaId}" type="text" value="${agenda.agendaDetail.endTime}" disabled="disabled"/> 

              </td> 
             </tr> 
             <tr> 
              <td class="leftTD vAlignTop">Description</td> 
              <td style="padding: 10px 0;"> 
               <textarea id="description${agenda.agendaDetail.agendaId}" class="demo">${agenda.agendaDetail.description}</textarea> 
              </td> 
             </tr> 
             <tr> 
              <td class="leftTD vAlignTop">Speaker(s)</td> 
              <%-- <td style="padding: 10px 0;"> 
               <c:forEach var="speaker" items="${agenda.speakerList}" varStatus="rowCnt"> 
                ${speaker.firstName} ${speaker.lastName}<br/> 
               </c:forEach> 
               <a href="#" class="addAnother orangeLink">+ Add another</a> 
              </td> --%> 
              <td style="padding: 10px 0;"> 
               <table class="alternate" id="spkrTbl${agenda.agendaDetail.agendaId}"> 
                <tr> 
                 <th style="width: 35%;">Name</th> 
                 <th style="width: 25%;">Firm</th> 
                 <th style="width: 20%;">Role</th> 
                 <th style="width: 20%;">Remove</th> 
                </tr> 
                <c:forEach var="speaker" items="${agenda.speakerList}" varStatus="rowCnt"> 
                 <tr> 
                  <td>${speaker.firstName} ${speaker.lastName}</td> 
                  <td>${speaker.firm}</td> 
                  <td>${speaker.type}</td> 
                  <td valign="middle"> 
                   <img src="../../images/trash.jpg" alt="Delete" onclick="deleteRow(${agenda.agendaDetail.agendaId}, ${speaker.attendeeId}, 'Speaker', this)"/> 
                  </td> 
                 </tr> 
                </c:forEach> 
               </table> 
               <div class="addNew"><a href="javascript:void(0);" class="addAnother orangeLink">+ Add another</a></div> 
              </td> 
             </tr> 
             <tr> 
              <td class="leftTD">Location</td> 
              <td style="padding: 10px 0;"> 
               <input id="location${agenda.agendaDetail.agendaId}" type="text" value="${agenda.agendaDetail.location}" disabled="disabled" /> 
              </td> 
             </tr> 
             <tr> 
              <td class="leftTD vAlignTop">Breakout Materials</td> 
              <td style="padding: 10px 0;"> 
               <table class="alternate" id="mtrlTbl${agenda.agendaDetail.agendaId}"> 
                <tr> 
                 <th style="width: 35%;">Asset Name</th> 
                 <th style="width: 45%;">Asset Type</th> 
                 <th style="width: 20%;">Remove</th> 
                </tr> 
                <c:forEach var="material" items="${agenda.agendaMaterialList}" varStatus="rowCnt"> 
                 <tr> 
                  <td>${material.materialDisplayName}</td> 
                  <td>${material.assetType}</td> 
                  <td valign="middle"> 
                   <img src="../../images/trash.jpg" alt="Delete" onclick="deleteRow(${agenda.agendaDetail.agendaId}, ${material.materialId}, 'Material', this)"/> 
                  </td> 
                 </tr> 
                </c:forEach> 
               </table> 
               <div class="addNew"><a href="javascript:void(0)" class="orangeLink addMaterial">+ Add New</a></div> 
              </td> 
             </tr> 
             <tr> 
              <td class="leftTD vAlignTop">Activity Feedback</td> 
              <td style="padding: 10px 0;"> 
               <table class="alternate"> 
                <tr> 
                 <th style="width: 35%;">Survey Names</th> 
                 <th style="width: 45%;">Responses</th> 
                 <th style="width: 20%;">Remove</th> 
                </tr> 
                <tr> 
                 <td>Rate the Speaker</td> 
                 <td>7-star</td> 
                 <td valign="middle"> 
                  <img src="../../images/trash.jpg" alt="Delete"/> 
                 </td> 
                </tr> 
               </table> 
               <div class="addNew"><a href="javascript:void(0)" class="orangeLink">+ Add New</a></div> 
              </td> 
             </tr> 
             <tr> 
              <td class="leftTD vAlignTop">Participants</td> 
              <td style="padding: 10px 0;"> 
               <table class="alternate"> 
                <tr> 
                 <th style="width: 35%;">Name</th> 
                 <th style="width: 25%;">Firm</th> 
                 <th style="width: 20%;">Role</th> 
                 <th style="width: 20%;">Remove</th> 
                </tr> 
                <c:forEach var="participant" items="${agenda.participantList}" varStatus="rowCnt"> 
                 <tr> 
                  <td>${participant.firstName} ${participant.lastName}</td> 
                  <td>${participant.firm}</td> 
                  <td>${participant.type}</td> 
                  <td valign="middle"> 
                   <img src="../../images/trash.jpg" alt="Delete" onclick="deleteRow(${agenda.agendaDetail.agendaId}, ${participant.attendeeId}, 'Attendee', this)"/> 
                  </td> 
                 </tr> 
                </c:forEach> 
               </table> 
               <div class="addNew"><a href="javascript:void(0)" class="orangeLink addParticipant">+ Add New</a></div> 
               </td> 
             </tr> 
            </table> 
           </div> 
          </div> 
         </c:forEach> 
         <hr /> 
         <c:if test="${fn:length(agendaList) > 0}"> 
         <input type="button" class="eventBtn" 
          style="margin: 10px; background-color: #88b3da" value="Save" onclick="saveAgenda(${fn:length(agendaList)})"/> 
         <input type="button" class="eventBtn" 
          style="margin: 10px; background-color: #88b3da" value="Save and Add New" /> 
         </c:if> 




...................................exception...................................... 
HTTP ERROR 500 
Problem accessing /SelfService2.0/app/agenda/data. Reason: 

    javax/el/ValueExpression 

Caused by: 
java.lang.NoClassDefFoundError: javax/el/ValueExpression 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
    at java.lang.Class.getDeclaredMethods(Class.java:1791) 
    at java.beans.Introspector$1.run(Introspector.java:1287) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285) 
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:402) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:229) 
    at java.beans.Introspector.(Introspector.java:383) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:229) 
    at java.beans.Introspector.(Introspector.java:383) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    at org.apache.jasper.compiler.Generator$TagHandlerInfo.(Generator.java:3713) 
    at org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2120) 
    at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1599) 
    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441) 
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) 
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) 
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219) 
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:456) 
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) 
    at org.apache.jasper.compiler.Generator.generate(Generator.java:3305) 
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198) 
    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:303) 
    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:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) 
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:334) 
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) 
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1139) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:378) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) 
    at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:324) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:540) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) 
Caused by: java.lang.ClassNotFoundException: javax.el.ValueExpression 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401) 
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
    ... 71 more 

Caused by: 
java.lang.ClassNotFoundException: javax.el.ValueExpression 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401) 
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
    at java.lang.Class.getDeclaredMethods(Class.java:1791) 
    at java.beans.Introspector$1.run(Introspector.java:1287) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285) 
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:402) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:229) 
    at java.beans.Introspector.(Introspector.java:383) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:229) 
    at java.beans.Introspector.(Introspector.java:383) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    at org.apache.jasper.compiler.Generator$TagHandlerInfo.(Generator.java:3713) 
    at org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2120) 
    at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1599) 
    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441) 
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) 
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) 
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219) 
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:456) 
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) 
    at org.apache.jasper.compiler.Generator.generate(Generator.java:3305) 
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198) 
    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:303) 
    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:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) 
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:334) 
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) 
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1139) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:378) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) 
    at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:324) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:540) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) 
+0

請添加完整的JSP循環代碼,包括您正在使用的JSTL表達式。 – nickdos

+0

我已經添加了代碼...請檢查 – Vaibhav

+0

您能從嵌入式服務器的輸出中獲得完整的堆棧跟蹤嗎?通常在Eclipse中的控制檯! –

回答

0
Caused by: java.lang.NoClassDefFoundError: javax/el/ValueExpression 

有根本原因。該類是EL 2.1的一部分,它應該是已經一個理智的Servlet 2.5/JSP 2.1兼容容器的一部分。

如果您將webapp的/WEB-INF/lib與單獨下載的任意servlet容器的不同版本和舊版本的EL庫混合在一起,將會失敗。

你需要確保web應用程序的/WEB-INF/lib包含已經由servletcontainer本身(如Servlet,JSP和EL庫)提供了通過你的web應用需要,因此不庫。從那裏刪除任何容器特定的庫,如el-api.jar,el-impl.jar等。

+0

感謝BalusC ....這些不相關的文件不存在。 – Vaibhav

+0

對不起,除此之外證明。請編輯你的問題並列出你在'/ WEB-INF/lib'目錄下的JAR文件。還請告訴您是否曾經通過在其中放置任意servletcontainer特定的JAR來操縱servletcontainer和/或JDK/JRE安裝的'/ lib'和/或'/ lib/ext'。 – BalusC