17

私はMapEL asを持っており${map}、それ自体が value を持つ EL 変数${key}でもあるキーを使用して、その値を取得しようとしています"1000"

使用しても機能します${map["1000"]}が、${map["$key"]}機能しません。Map変数をキーとして使用して値を取得するにはどうすればよいですか?

4

5 に答える 5

22

$は変数名の始まりではなく、式の始まりを示します。map${map[key]}のプロパティにアクセスするには、を使用する必要があります。keymap

GETたとえば、次のクエリ文字列を使用して、パラメーターを使用してページで試すことができます?whatEver=something

<c:set var="myParam" value="whatEver"/>
whatEver: <c:out value="${param[myParam]}"/>

これは出力されます:

whatEver: something

https://stackoverflow.com/tags/el/infoを参照し、「ブレース表記」セクションまでスクロールします。

于 2012-09-20T20:31:13.630 に答える
5

私は以前にこの問題に直面したことがあります。これは通常、キーが文字列ではない場合に発生します。修正は、キーを使用してマップから値を取得する前に、キーを文字列にキャストすることです

このようなもの:

<c:set var="keyString">${someKeyThatIsNotString}</c:set>

<c:out value="${map[keyString]}"/>

それが役立つことを願っています

于 2016-05-24T07:04:03.477 に答える
1

Key-Value を横のマップに配置し、以下のように on page をJava使用して同じものにアクセスできます。JSTLJSP

以前の Java 1.7:

Map<String, String> map = new HashMap<String, String>();
map.put("key","value");

Java 1.7 以降:

Map<String, String> map = new HashMap<>();
map.put("key","value");

JSP スニペット:

<c:out value="${map['key']}"/>
于 2014-07-23T15:22:05.507 に答える
-4

次のようにマップにアクセスする必要があると思います。

${map.key}

12などの jstl に関するいくつかのチュートリアルを確認してください(少し古いですが、まだ機能しています)。

于 2012-09-20T18:03:42.063 に答える