在我的JSP页面中,我使用c:forEach
标记迭代对象列表。此迭代中的每个对象都有一个名称字段,我试图使用该名称字段来引用我添加到Spring模型中的其他对象。但是,当我这样做时,我得到一个例外,说明在String上找不到第二个对象的属性。让我举一个简化的例子来说明。
<c:forEach items="${companyList}" var="company" varStatus="num">
<c:set var="monthStats" value="${company.name}_month" />
<tr>
<td>Properties This Month</td>
<td>${monthStats.properties}</td>
</tr>
....
</c:forEach>
所有对象都位于Spring Model对象中,并且已经像这样设置
model.addAttribute(company.getName() +"_month", currentMonthStats);
我也试过抛出<c:set
标签并尝试
${(company.name + "_month").properties}
以及
${${company.name + "_month"}.properties}
。
那些也没有用。此外,我不太确定如何说出我的标题,所以如果它可以措辞得更好让我知道,以便其他人可以找到它,如果他们有相同的问题。
答案 0 :(得分:1)
你基本上要求进行双重评估,但它并不像那样。
我将传递给视图层的数据修改为一些不那么奇怪的东西,因此您可以以非病态的方式访问它,例如将月份统计数据放入由公司名称访问的地图中(或者id),或直接将它们与DTO等相关联。