2012-09-20 16 views
13

MapはELに${map}と表示されていますが、それ自体のEL変数${key}の値を"1000"とするキーを使用してその値を取得しようとしています。変数をキーとしてアクセスするELのマップ値にアクセス

${map["1000"]}を使用していますが、${map["$key"]}は機能しません。何が間違っているのですか?変数をキーとしてMapの値を取得するにはどうすればよいですか?私はあなたのような地図の何かにアクセスする必要があることだと思う

+1

$を支援します。修正がマップから値を取得するためにキーを使用する前に、このような

何かを文字列にキーをキャストすることですは変数名の先頭ではなく、式の開始を示します。 –

答えて

-4

${map.key} 

をして(少し時代遅れが、それでも機能)12などのJSTLについてのいくつかのチュートリアルをチェック

+0

私は$ {map。$ key}を試しましたが、うまくいきませんでした。 – user1643001

+0

$ {map.key}ではない、ちょうど$ {map.key} – Nickmancol

19

$ではありません変数名の先頭には、式の開始を示します。地図mapkeyにアクセスするには、${map[key]}を使用してください。

あなたは?whatEver=something

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

これが出力されます例えば、次のクエリ文字列を使用して、GETパラメータを指定してページ上でそれを試すことができます。

whatEver: something 

参照:https://stackoverflow.com/tags/el/infoをし、セクションまでスクロールし"括弧記法"。あなたはJava側のマップ内のキーと値を入れて、以下のようにJSPページにJSTLを使用して同じにアクセスすることができ

+0

解決策はうまくいかない: -/ –

+0

他の何かが間違っています。私は私の投稿の例をテストして、動作していることを確認しました(そして、 '$ {map.key}'は機能していませんでした)。 –

1

前の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']}"/> 
3

私は前にこの問題に直面しています。これは通常、キーが文字列でない場合に発生します。

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

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

希望

関連する問題