Reputation: 35
I am trying to display Candidates information on JSP from two items lists viz. Personal Info - "${candidatesPI}" and Fitness Info - "${candidatesFI}".
Below is the JSP code to display the information from two lists. Here I am storing the Candidate ID information from these two lists using two variables var1 and var2 and then doing comparison. The error is shown while storing the value of CandidateID into var1 variable.
<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>
I am getting below error -
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}'>
I am using Spring MVC framework. Is this issue specific to JSP or Spring MVC classes? Please let me know.
Upvotes: 0
Views: 2911
Reputation: 833
The variable you are trying in the JSP is a String and you are trying to convert it to an integer. You might want to either convert that to an integer and set the value. Check the example in this code base of how to convert a String to Number. You can convert the Cheers
<fmt:parseNumber var = "parsedCandidateID" type = "number" value = "${tempcandDet1.candidateID_FI}"/>
<c:set var="var1" value="parsedCandidateID"/>
After making sure the variable of type integer, then u can do the compare operation ur doing.
Upvotes: 1