5

私はこのハッシュマップを持っています:

    Map<Integer, String> odometerMap = new LinkedHashMap<Integer, String>();
    odometerMap.put(0, getLocaleForKey("drop-down.any"));
    odometerMap.put(1, "< 1000");
    odometerMap.put(2, "1000 - 5000");
    odometerMap.put(3, "5000 - 10000");
    odometerMap.put(4, "10000 - 20000");
    odometerMap.put(5, "20000 - 30000");
    odometerMap.put(6, "30000 - 40000");
    odometerMap.put(7, "40000 - 60000");
    odometerMap.put(8, "60000 - 80000");
    odometerMap.put(9, "> 80000");

JSP での私の目標は、たとえば ${odometerMap[2]} を出力することです (結果は空の文字列です)。

    <c:out value="${odometerMap[2]}"/>

${odometerMap} のみを印刷すると、完全な地図が得られます。

{0=Any, 1=< 1000, 2=1000 - 5000, 3=5000 - 10000, 4=10000 - 20000, 5=20000 - 30000, 6=30000 - 40000, 7=40000 - 60000, 8=60000 - 80000, 9=> 80000}

選択した要素だけを印刷するにはどうすればよいですか? 例: 2?

ありがとうございました

4

2 に答える 2

11

EL では、数字は として扱われLongます。Long鍵探しです。マップキーLongの代わりに使用すると機能します。Integer

Map<Long, String> odometerMap = new LinkedHashMap<Long, String>();
odometerMap.put(0L, getLocaleForKey("drop-down.any"));
odometerMap.put(1L, "< 1000");
// ...
于 2012-09-03T12:35:44.420 に答える
5

String別の方法として、 a をキーとして使用することもできます

Map<String, String> odometerMap;

.. と:

<c:out value="${odometerMap['2']}"/>

ただし、キーには明確な意味がないため、 Listofを使用することをお勧めします。Strings

List<String> odometers = new ArrayList<String>();
odometers.add(getLocaleForKey("drop-down.any"));
// etc

.. と:

<c:out value="${odometers[2]}"/>
于 2012-09-03T12:27:05.530 に答える