JSTL从另一个EL值获得EL的值

时间:2013-08-05 19:24:32

标签: spring jsp jstl

在我的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}

那些也没有用。此外,我不太确定如何说出我的标题,所以如果它可以措辞得更好让我知道,以便其他人可以找到它,如果他们有相同的问题。

1 个答案:

答案 0 :(得分:1)

你基本上要求进行双重评估,但它并不像那样。

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