PHPでは、私は通常、次のようなことを行います。
foreach(array('street','town','county','postcode') as $e) {
echo $address[$e] . '<br/>';
}
簡潔で扱いやすいです。ELでこれを行う方法はありますか?私はそれをきれいに行うための良い方法を見つけるのに苦労しています。
通常、マップまたはリストサーバー側にデータを入力し、次のようにループごとに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>
標準のJSTL/ELにはそのようなものはありませんが、JSTL fn:split()
を使用して、単一の区切られた文字列を配列に分割できます。
<c:forEach items="${fn:split('street,town,county,postcode', ',')}" var="e">
${address[e]}<br/>
</c:forEach>
(キーとして指定された値を持つ${address}
a Map
、または指定されたプロパティを持つJavabeanを指す場合)
または、${address}
が実際にそれらのキーのみMap
をすでに含んでいる場合は、それ自体をループすることもできます。Map
<c:forEach items="${address}" var="entry">
${entry.value}<br/>
</c:forEach>
(上記の例では、マップキーはによって印刷できます。挿入順序を維持するために${entry.key}
必要であることに注意してください)LinkedHashMap