c:forEach在上一行中已经存在时不要重复相同的值

c:forEach在上一行中已经存在时不要重复相同的值,第1张

c:forEach在上一行中已经存在时不要重复相同的值

1。

您的HTML中有一些错误:

<li><a href="${url_itemmarket}/${cmenu.itemName}">${cmenu.description}/a>/li>    ^  ^    |  |    two errors here (mising < characters) --------------------------------    replace with this -----------------------------------------------------    |   |    v   v<li><a href="${url_itemmarket}/${cmenu.itemName}">${cmenu.description}</a></li>

2。

您应该使用Map。

地图的键应该是不同的 类型

值应为 食物对象 列表 ”。

然后,您可以在JSP中遍历地图的键。

您将需要一个嵌套循环来遍历每个列表中的食物。

我认为您的JSP / JSTL看起来像这样,但是未经测试:

<table>  <tr><th>type</th><th>Item Name</th></tr>  <!-- iterate over each key in the map -->  <c:forEach var="foodMapEntry" items="${foodMap}">    <tr>      <td>${foodMapEntry.key}</td>      <td>        <!-- iterate over each item in the list of foods -->        <c:forEach var="food" items="${foodMapEntry.value}">        | ${food.name}<br/>      </c:forEach>      </td>    </tr>     </c:forEach></table>

这是一些代码,显示了如何构建上面使用的地图

List<Food> foodList = new ArrayList<Food>();foodList.add(new Food("Banana", "fruit"));foodList.add(new Food("Apple", "fruit"));foodList.add(new Food("Onion", "vegetable"));foodList.add(new Food("Mushroom", "vegetable"));foodList.add(new Food("Chocolate", "candy"));foodList.add(new Food("Gummy Bears", "candy"));Map<String, List<Food>> foodMap = new HashMap<String, List<Food>>();for (Food f : foodList) {    String foodType = f.getType();    if (foodMap.containsKey(foodType)) {        foodMap.get(foodType).add(f);    }    else {       List<Food> tempList = new ArrayList<Food>();       tempList.add(f);       foodMap.put(foodType, tempList);    }}

还有一个简单的Food类:

class Food {   private String name;   private String type;   public Food(String n, String t) {       name = n;       type = t;   }   public String getName() { return name; }   public String getType() { return type; }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5123504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存