我的应用程序中有类似下面的要求,
我想以表格的形式显示以下详细信息。
Country Name Population CapitalCity Aria
US XX XX XX XX
IN YY YY YY YY
用户可以在配置页面中选择他有兴趣查看的列。
在后端我设置模型属性如下(使用spring MVC),
model.addAttribute("selColumns", "column keys");
model.addAttribute("countryDetails", "List of country details");
在CountryDetail类中,字段名称和selColumns键名称相同。
class CountryDetails {
private String country,
population,
CapitalCity,
Aria;
}
在UI中,我尝试使用以下代码来实现相同的目标。
<table class="table table-hover table-bordered table-striped">
<thead>
<tr>
<c:forEach items="${selColumns}" var="item">
<th><spring:message code="${item}" /></th>
</c:forEach>
</tr>
</thead>
<tbody>
<c:forEach items="${countryDetails}" var="det">
<tr>
<c:forEach items="${selColumns}" var="item">
<td>
//Below code is not working
<c:out value="${item.det}" /></td>
</c:forEach>
</tr>
</c:forEach>
</tbody>
</table>
表头工作正常。但我正在努力只为配置的列显示行信息。 代码不会起作用,因为它试图在java端找到getDet()。
请问有人在JSP中有什么办法,如果我给属性(字段)名称相应的值会返回吗?
像这样的东西
提前致谢, 小猫
答案 0 :(得分:1)
试试这个。
<tbody>
<c:forEach items="${countryDetails}" var="det">
<tr>
<c:forEach items="${selColumns}" var="item">
<td>
<c:out value="${det[item]}" />
</td>
</c:forEach>
</tr>
</c:forEach>
</tbody>
注意:
selColumns = ["Country", "Population", "CapitalCity", "Aria"]
CountryDetails properties = Country,Population,CapitalCity,Aria