これは他の質問とよく似ていますが、誰も文字列キーを扱っていません。だからここに行く。JSTLの文字列キーによるツリーマップエントリへのアクセス
カテゴリ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>
残念ながら、これは何も出ません。 NOR ${categories["${catId}"].value}.
ただし、これはいない:もちろん
${categories["2"]}
、その行が実際にアイテムデータによって駆動されていません。
私はチェックしましたが、実際には各アイテムに付いているIDはカテゴリIDに対応しています。これはデータの不一致の問題ではありません。
アイテムに関連付けられたデータにIDのみが含まれている場合、どのようにカテゴリ名に手を加えるのですか?
P.S.私はJavaプログラマではないことを言及する必要があります。ランプは私のスタイルです。したがって、クラスの変更は実際には選択肢ではありません。
できません。私は各項目のカテゴリのマスターリストを表示したくありません。これはこのコードが行うものです。私は、各項目について、それが属するカテゴリーを表示したいと思います。 foreachは項目のカテゴリーを繰り返し、マスターリストと相互参照する必要があります。 – Tom
私は前に運がなかったことを誓ったことがある。しかし、私はあなたのコードが動作するので、ないと思います!どうもありがとう。 – Tom