在我的JSP頁面中,我使用c:forEach
標記遍歷對象列表。此迭代中的每個對象都有一個名稱字段,我試圖使用該名稱字段來引用我已添加到我的Spring模型中的其他對象。但是,當我這樣做時,我得到一個異常,說第二個對象的屬性不能在字符串中找到。讓我用一個簡單的例子來說明。JSTL從另一個EL值中獲取EL的值
<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>
所有對象都位於一個彈簧模型對象中,並已設置這樣 model.addAttribute(company.getName() +"_month", currentMonthStats);
我也曾嘗試扔出去的<c:set
標籤,並試圖
${(company.name + "_month").properties}
以及
${${company.name + "_month"}.properties}
。
那些沒有工作。另外,我不太清楚如何說出我的頭銜,所以如果它可以更好地告訴我,讓其他人可以找到這個,如果他們有同樣的問題。
是的,我想我會做這樣的事情。那麼雙查找有什麼問題?林混淆了爲什麼第二個loopkup不起作用,如果對象的模型關鍵字是一個字符串,這就是我正在使用它來查找它。那有意義嗎? – jlars62
@ jlars62'value'已經被對象評估;我只是不認爲你可以在表達式中使用EL。雖然我可能會誤解;你可以檢查'monthStats'的類型來找出。儘管如此,我仍然會在視圖層之前考慮做更多的工作。更容易測試和維護,IMO。 –