首页 > 解决方案 > 严重:servlet [jsp] 的 Servlet.service() 抛出异常 java.lang.NumberFormatException

问题描述

我正在尝试从两个项目列表中显示关于 JSP 的候选人信息,即。个人信息 - “${candidatesPI}”和健身信息 - “${candidatesFI}”。

下面是显示来自两个列表的信息的 JSP 代码。在这里,我使用两个变量 var1 和 var2 存储这两个列表中的候选 ID 信息,然后进行比较。将 CandidateID 的值存储到 var1 变量时显示错误。

<c:forEach var="tempcandDet" items="${candidatesPI}" varStatus="counter">

                <c:url var="CanDet" value="/aro/searchByAadhaar">
                        <c:param name="AadhaarNo" value="${tempcandDet.aadhaarNumber}" />
                        <c:param name="candidateID" value="${tempcandDet.candidateID}" />
                    </c:url>
                <c:url var="updateLink" value="/aro/showFormForUpdate">
                        <c:param name="candidateID" value="${tempcandDet.candidateID}" />
                    </c:url>
<tr>
    <%-- <td class="DashboardTabledata" style="text-align:left">${counter.count}</td> --%>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;"><a href="${CanDet}">${tempcandDet.aadhaarNumber}</a></td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet.firstName}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet.middleName}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet.lastName}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet.postApplied}</td>
    <td class="DashboardTabledata" style="text-align:center;font-size: 14px;">${tempcandDet.eligible}</td>
    <c:forEach var="tempcandDet1" items="${candidatesFI}" varStatus="counter">
    <c:set var="var1" value="${tempcandDet1.candidateID_FI}"/>
    <c:set var="var2" value="${tempcandDet.candidateID}"/>
    <c:choose>
        <c:when test='${var1==var2}'>
    <td class="DashboardTabledata" style="text-align:center;font-size: 14px;">${tempcandDet1.runningScore}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet1.pullUpsScore}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet1.balance}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet1.ditch}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet1.medical}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet1.surgical}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet1.eye}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet1.ent}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet1.ceeScore}</td>
     </c:when>
     </c:choose>
     </c:forEach>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet.score}</td>
    <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet.result}</td>
    <%-- <td class="DashboardTabledata"><a href="${updateLink}">Update</a></td> --%>

  </tr>

</c:forEach>

我得到以下错误 -

Aug 07, 2018 5:01:32 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet [jsp] threw exception
java.lang.NumberFormatException: For input string: "candidateID_FI"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at javax.el.ArrayELResolver.coerce(ArrayELResolver.java:144)
    at javax.el.ArrayELResolver.getValue(ArrayELResolver.java:61)
    at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:115)
    at org.apache.jsp.WEB_002dINF.view.MainPage_005fARON_jsp._jspx_meth_c_005fset_005f9(MainPage_005fARON_jsp.java:3509)
    at org.apache.jsp.WEB_002dINF.view.MainPage_005fARON_jsp._jspx_meth_c_005fforEach_005f1(MainPage_005fARON_jsp.java:3461)
    at org.apache.jsp.WEB_002dINF.view.MainPage_005fARON_jsp._jspx_meth_c_005fforEach_005f0(MainPage_005fARON_jsp.java:3225)
    at org.apache.jsp.WEB_002dINF.view.MainPage_005fARON_jsp._jspService(MainPage_005fARON_jsp.java:357)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:170)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:407)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

Aug 07, 2018 5:01:32 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/SRS-ARONAGPUR] threw exception [An exception occurred processing [WEB-INF/view/MainPage_ARON.jsp] at line [511]

508:     <td class="DashboardTabledata" style="text-align:left;font-size: 14px;">${tempcandDet.postApplied}</td>
509:     <td class="DashboardTabledata" style="text-align:center;font-size: 14px;">${tempcandDet.eligible}</td>
510:     <c:forEach var="tempcandDet1" items="${candidatesFI}" varStatus="counter">
511:     <c:set var="var1" value="${tempcandDet1.candidateID_FI}"/>
512:     <c:set var="var2" value="${tempcandDet.candidateID}"/>
513:     <c:choose>
514:        <c:when test='${var1==var2}'>

我正在使用 Spring MVC 框架。此问题是否特定于 JSP 或 Spring MVC 类?请告诉我。

标签: javaspring-mvcjsp

解决方案


您在 JSP 中尝试的变量是字符串,并且您正尝试将其转换为整数。您可能希望将其转换为整数并设置值。检查此代码库中有关如何将 String 转换为 Number的示例。你可以转换干杯

<fmt:parseNumber var = "parsedCandidateID" type = "number" value = "${tempcandDet1.candidateID_FI}"/>

<c:set var="var1" value="parsedCandidateID"/>

在确定了整数类型的变量之后,你就可以做你正在做的比较操作了。


推荐阅读