私はJSP/JSTLを作成しており、データベース内のいくつかのアイテムを反復処理しようとしています。
${image1}
現在、データベースには、、、の3つの列があり${image2}
ます${image3}
。次のコードを使用して、情報を印刷しようとしています。
<c:forEach begin="1" end="3" var="i">
${image${i}}
</c:forEach>
これを機能させる方法はありますか?
そのようなEL式をネストすることはできません。
これらの変数のスコープを事前に知っている場合にのみ、具体的な機能要件を達成できます。このようにして、スコープマップに直接アクセスしながら中括弧表記を使用できます。<c:set>
複数の変数で構成されるELスコープで新しい文字列変数を作成するために使用できます。たとえば${requestScope}
、リクエストスコープの変数のマッピングにアクセスするために使用できます。
したがって、これらの変数を実際にリクエストスコープに格納している場合は、次のようにする必要があります。
<c:forEach begin="1" end="3" var="i">
<c:set var="image" value="image${i}" />
${requestScope[image]}
</c:forEach>
セッションスコープには、${sessionScope}
代わりにマップを使用してください。
ネストされた式を角かっこ()で囲むことにより、ネストされた式を作成することができました。以下の例を参照してください。
#{row.Dateapproved eq null ? 'true' : (row.Appealrange > (bindings.Appealvalidation.inputValue) ? 'true' : 'false') }