0

I am trying to print a List objects in Jsp page using JSTL but i am getting some Exception. Below is the model class for my App

public class ItemMaster implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = -1364853156929567630L;

private BigDecimal itemId;
private String itemNumber;
private String description;
private String lifeCyclePhase;
public BigDecimal getItemId() {
    return itemId;
}
public void setItemId(BigDecimal itemId) {
    this.itemId = itemId;
}
public String getItemNumber() {
    return itemNumber;
}
public void setItemNumber(String itemNumber) {
    this.itemNumber = itemNumber;
}
public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
public String getLifeCyclePhase() {
    return lifeCyclePhase;
}
public void setLifeCyclePhase(String lifeCyclePhase) {
    this.lifeCyclePhase = lifeCyclePhase;
}

Below is the controller for that List

@RequestMapping(value="/searchQuery", method=RequestMethod.POST)
    public ModelAndView submitForm(HttpServletRequest request, ModelAndView model) {
    String[] listBox1 = request.getParameterValues("selectedright");
    List<ItemMaster> lists=itemDao.fetchRecords(listBox1);
    model.addObject("queryResult",lists);
    model.setViewName("results");    
    return model;
    }

Below is the snippet of my jsp page where i am trying to retrieve the values

<c:forEach var="queryResult" items="${queryResult}" varStatus="status">
            <tr>
       <td>${status.index + 1}</td>
                <td>${queryResult.itemId}</td>
                <td>${queryResult.itemNumber}</td>
                <td>${queryResult.description}</td>
                <td>${queryResult.lifeCyclePhase}</td> 
            </tr>
            </c:forEach>

Error which i am getting is

java.lang.NumberFormatException: For input string: "itemId"
java.lang.NumberFormatException.forInputString(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
javax.el.ListELResolver.coerce(ListELResolver.java:157)
javax.el.ListELResolver.getValue(ListELResolver.java:70)
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
org.apache.el.parser.AstValue.getValue(AstValue.java:167)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:936)
org.apache.jsp.WEB_002dINF.views.results_jsp._jspService(results_jsp.java:145)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Anupam Alok
  • 433
  • 3
  • 17

1 Answers1

2

Since you need to get BigDecimal value so you have to use the JSTL format taglib to format the display of a BigDecimal.

And below taglib on the JSP

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

Now retrieve the list,

<c:forEach var="queryResult" items="${queryResult}" varStatus="status">
    <tr>
       <td>${status.index + 1}</td>
       <td><fmt:formatNumber value="${queryResult.itemId}" minFractionDigits="2"/></td>
       <td>${queryResult.itemNumber}</td>
       <td>${queryResult.description}</td>
       <td>${queryResult.lifeCyclePhase}</td> 
    </tr>
</c:forEach>
Harshal Patil
  • 6,659
  • 8
  • 41
  • 57
  • Did the Changes still getting the same error..org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/results.jsp at line 48 45: 46: 47: ${status.index + 1} 48: 49: ${queryResult.itemNumber} java.lang.NumberFormatException: For input string: "itemId" java.lang.NumberFormatException.forInputString(Unknown Source) – Anupam Alok Dec 08 '15 at 15:12
  • have you add taglib on jsp – Harshal Patil Dec 08 '15 at 15:38
  • Yes i have added the taglib <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> – Anupam Alok Dec 08 '15 at 15:42
  • 1
    Sorry i did a blunder i missed <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> After adding this it is working now. Thanks for your advise – Anupam Alok Dec 08 '15 at 15:49
  • This answer is incorrect. BigDecimal will be output just fine without formatting. – Alan Hay Dec 08 '15 at 16:07
  • @AlanHay Please check above comment. This solution is working. – Harshal Patil Dec 09 '15 at 04:29
  • @user2281493 Glad it helps. Please mark it as answer – Harshal Patil Dec 09 '15 at 04:30
  • The poster notes is started working after he added the JSTL **core** library. Your answer about adding the formatting library may have provided a hint but it is not required, Your answer is incorrect and should be removed. – Alan Hay Dec 09 '15 at 07:33
  • @AlanHay common Dude if this is the case he wasn't added core library. How foreach came to know it is list of objects. and specifically it reads all the correct values with type. – Harshal Patil Dec 09 '15 at 08:48