1

c:forEach在我的 JSP 页面中,我正在使用标签遍历对象列表。此迭代中的每个对象都有一个名称字段,我试图使用该名称字段来引用我添加到我的 Spring 模型中的其他对象。但是,当我这样做时,我收到一个异常,说在字符串上找不到第二个对象的属性。让我用一个简化的例子来说明。

<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}.

那些也没有工作。另外,我不太确定如何措辞我的标题,所以如果可以更好地措辞,请告诉我,以便其他人在遇到相同问题时可以找到这个。

4

1 回答 1

1

您基本上是在要求双重评估,但事实并非如此。

我会将传递到视图层的数据修改为不那么奇怪,因此您可以以非病态的方式访问它,例如将月份统计信息放入由公司名称(或 ID)访问的地图中,或直接将它们关联到 DTO 等中。

于 2013-08-05T19:30:35.427 回答