我正在尝试调试一个旧的 jsp 站点,因此我在运行 Windows 7 的本地计算机上安装了 tomcat 7 和 Netbeans IDE 7.2.1 并进行了所有设置。但是当我运行它时,我收到一个错误:
严重:servlet jsp 的 Servlet.service() 抛出异常 org.apache.jasper.JasperException:/pages/caselisting.jsp(行:133,列:35)“${case.patientmaxdate}”包含无效表达式: javax.el.ELException:无法解析表达式 [${case.patientmaxdate}]
该行的代码是:
<td><c:out default=" " escapeXml="false" value="${case.patientmaxdate}"/></td>
我对 jsp 很陌生,正在尝试对这个旧站点进行一些更改。我做了一些研究并读到 Tomcat 7 对此错误进行了一些更改。如果有人能引导我朝着正确的方向前进,我将不胜感激。
谢谢。
完整的堆栈跟踪:
严重:servlet jsp 的 Servlet.service() 抛出异常 org.apache.jasper.JasperException:/pages/caselisting.jsp(行:133,列:35)“${case.patientmaxdate}”包含无效表达式: javax.el.ELException:无法在 org.apache.jasper.compiler.ErrorDispatcher.dispatch 的 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42) 解析表达式 [${case.patientmaxdate}] (ErrorDispatcher.java:408) 在 org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1223) 在 org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:199) 在 org. org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539) 中的 org.apache.jasper.compiler 中的 apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:875)。Node$Nodes.visit(Node.java:2376) at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428) at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator. java:894) at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376) at org.apache .jasper.compiler.Node$Visitor.visitBody(Node.java:2428) at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434) at org.apache.jasper.compiler.Node$Root .accept(Node.java:475) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376) at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1795) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217) 在 org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) 在 org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 在 org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 在 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java: 646) 在 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 在 org.apache.jasper.servlet.JspServlet .service(JspServlet.java:334) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 在 org.apache。 catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) 在 org.apache.catalina。core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)在 org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056) 在 org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261) 在 org.apache.struts.action.RequestProcessor.processForwardConfig (RequestProcessor.java:388) 在 org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316) 在 org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231) 在 org.apache。 struts.action.ActionServlet.process(ActionServlet.java:1164) 在 org.apache.struts。action.ActionServlet.doGet(ActionServlet.java:397) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 在 org.apache .catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 filter.SecureFilter.doFilter(SecureFilter.java:38) 在 org. apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve. java:222) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 在 org.apache。catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 99)在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在 org.apache.catalina.connector.CoyoteAdapter .service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org. java.util.concurrent.ThreadPoolExecutor 上的 apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)。runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread.run(Thread.java:722)
错误行周围的完整代码是:
<c:forEach items="${caselist}" var="case">
<tr onMouseOver="this.bgColor='#EEEEEE';" onMouseOut="this.bgColor='';">
<td><c:out default=" " escapeXml="false" value="${case.patientmaxdate}"/></td>
这里 caselist 是一个数组列表。