无法从JSP中的对象获取值

时间:2014-12-17 14:08:25

标签: jsp spring-mvc jstl

尝试从jsp中的项目中获取值时,我收到以下异常。

以下是我的错误:

SEVERE: Servlet.service() for servlet [mvc-dispatcher] in context with path [/Dashboard] threw exception [An exception occurred processing JSP page /WEB-INF/jsp/chartListFromDB.jsp at line 9

6:      <c:if test="${not empty chart_items}"></c:if>
7: 
8:      <c:forEach var="chartList" items="${chart_items}">
9:          <li><a href="/Dashboard/chart/displayChart/${chart_items.chartId}">${chart_items.chartName}</a>
10:             </li>
11:         </c:forEach>
12:     </ul>


Stacktrace:] with root cause
java.lang.NumberFormatException: For input string: "chartId" at java.lang.NumberFormatException.forInputString(Unknown Source)

这是我的控制器

@RequestMapping(value = "/availableChartsFromDB", method = RequestMethod.GET)
public String availableChartsFromDB(ModelMap model) {
    IChartBehaviour chartService = new ChartService();
    List<Chart> chart_items = chartService.getAvilableChartsFromDB();
    model.addAttribute("chart_items", chart_items);
    return "chartListFromDB";
}

这是我的JSP

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@include file="header.jsp"%>
<div id="content_main">
<h3>Chart Selector ...</h3>
<ul>
    <c:if test="${not empty chart_items}"></c:if>

    <c:forEach var="chartList" items="${chart_items}">
        <li><a href="/Dashboard/chart/displayChart/${chart_items.chartId}">${chart_items.chartName}</a>
        </li>
    </c:forEach>
</ul>
</div>
<%@include file="footer.jsp"%>

2 个答案:

答案 0 :(得分:0)

使用chartList.chartId。 chartList是chart_items列表中的迭代器变量。

答案 1 :(得分:0)

经过一些尝试并在@Rahul Vedpathak的初步帮助之后 我现在能够解决这个错误。

正如Rahul所指出的那样 - 我没有初始化地使用迭代器变量 我纠正了这个错误,但仍然发生了同样的异常。

第二个问题是我试图通过引用而不是getter方法访问Chart对象。

通过更改

chartList.chartId

chartList.getChartId()

这解决了我的问题