在PHP中,我通常会这样做:
foreach(array('street','town','county','postcode') as $e) {
echo $address[$e] . '<br/>';
}
简洁易用。有没有办法在EL中这样做?我很难找到一个干净利落的好方法。
答案 0 :(得分:0)
通常,您将填充地图或列表服务器端,然后使用JSTL在JSP上输出它们,如下所示:
<c:forEach items="${formBean.myMap}" varStatus="itm">
<tr>
<td>${itm.key.propertyName}</td>
<td>${itm.value.propertyName}</td> <!--which is same as below ... -->
<td>${formBean.myMap[itm.key].propertyName}</td>
</tr>
</c:forEach>
答案 1 :(得分:0)
在标准JSTL / EL中没有类似的东西,但您可以使用JSTL fn:split()
将单个分隔的字符串拆分为数组:
<c:forEach items="${fn:split('street,town,county,postcode', ',')}" var="e">
${address[e]}<br/>
</c:forEach>
(前提是${address}
指向具有给定值的Map
作为键或具有给定属性的Javabean
或者如果${address}
确实是Map
,其中只包含 那些键,您也可以循环遍历Map
本身:
<c:forEach items="${address}" var="entry">
${entry.value}<br/>
</c:forEach>
(以上示例中的地图键可以由${entry.key}
打印;另请注意,您需要LinkedHashMap
才能维持广告订单顺序)