6

私はJSP/JSTLを作成しており、データベース内のいくつかのアイテムを反復処理しようとしています。

${image1}現在、データベースには、、、の3つの列があり${image2}ます${image3}。次のコードを使用して、情報を印刷しようとしています。

<c:forEach begin="1" end="3" var="i">
  ${image${i}}
</c:forEach>

これを機能させる方法はありますか?

4

2 に答える 2

10

そのような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}代わりにマップを使用してください。

参照:

于 2013-03-25T13:08:51.503 に答える
-1

ネストされた式を角かっこ()で囲むことにより、ネストされた式を作成することができました。以下の例を参照してください。

#{row.Dateapproved eq null ? 'true' : (row.Appealrange > (bindings.Appealvalidation.inputValue) ? 'true' : 'false') }

于 2016-09-08T10:40:53.660 に答える