これは他の質問とよく似ていますが、文字列キーを扱っている人は他にいません。それでは、行きましょう。
カテゴリ ID でキー付けされた一連のカテゴリ名を持つ TreeMap があります。ID は数値 (文字列として) です。
次のように、値を使用して TreeMap を作成し、それをページに公開します。
<%
Map categories = new TreeMap();
...
String categoryId = ...;
String categoryName = ...;
categories.put(categoryId, categoryName);
...
pageContext.setAttribute("categories", categories);
%>
その後、カテゴリに割り当てられた一連のアイテムを反復処理します。各アイテムには、割り当てられたカテゴリの ID を含む .categories コレクションがあります。名前を表示したいので、次のようにします。
<c:forEach items="${item.categories}" var="catId">
${categories[“${catId}”}
</c:forEach>
残念ながら、これは何も出力しません。そうでもない${categories["${catId}"].value}.
ただし、これは次のことを行います。
${categories["2"]}
もちろん、その行は実際にはアイテム データによって駆動されるわけではありません。
確認したところ、各アイテムに付けられた ID は実際にはカテゴリ ID に対応しています。これはデータの不一致の問題ではありません。
では、アイテムに添付されたデータが ID しかない場合、カテゴリ名をどのように取得すればよいでしょうか。
追記: 私は Java プログラマーではありません。LAMPは私のスタイルです。したがって、クラスを変更することは実際にはオプションではありません。