【问题标题】:is it possible to change get variable values from an JSTL array like on Java? [duplicate]是否可以像在 Java 上一样从 JSTL 数组中更改获取变量值? [复制]
【发布时间】:2019-05-28 10:11:10
【问题描述】:

我想知道如何将下面的代码传递给jstl根据索引更改名称。

List<Map> inventariozonas = new ArrayList<Map>();
for(int i = 1; i < 20; i++){
  Map r3 = new HashMap();
  r3.put("puntoventa", "puntoventa"+i);
  inventariozonas.add(r3);
}

我一直在尝试通过 JSTL 获取 HTML 中的值,但我不知道如何动态获取它们,因为每个变量都有不同的名称。

使用下面的代码只需重复相同的值。

<c:forEach items="${inventariozonas}" var="r">
  <tr>
    <td>${r.puntoventa1}</td>
  </tr>
</c:forEach>

有没有可能做这样的事情:

<c:forEach items="${inventariozonas}" var="r">
  <tr>
    <td>${r.puntoventa+index}</td>
  </tr>
</c:forEach>

【问题讨论】:

  • 这里的问题是,你做这一切的目的是什么?获取地图中每个地图的所有元素或究竟是什么?

标签: javascript java jstl


【解决方案1】:

你可以试试这个方法:

<c:forEach items="${inventariozonas}" var="r" varStatus="vs">
  <tr>
    <td>${r['puntoventa' + vs.index]}</td>
  </tr>
</c:forEach>
  1. 首先要获取可以使用 varStatus 的索引,更多详细信息请阅读此How to get a index value from foreach loop in jstl
  2. 要从地图中获取值,您可以使用r['key'],有关更多详细信息,请阅读此Get value from hashmap based on key to JSTL

如果您想遍历每个地图的元素,那么建议采用这种方式:

<c:forEach items="${inventariozonas}" var="myMap">
  <c:forEach items="${myMap}" var="entry">
     <tr>
       <td>${entry.value}</td>
     </tr>
  </c:forEach>
</c:forEach>

【讨论】:

  • 这里 ${vs.index},${} 不是必需的,因为 vs.index 已经在 ${} 中。
  • 谢谢@Md.NasirUddinBhuiyan 这是正确的:)
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
  • 2011-10-18
  • 2018-08-25
  • 2011-06-06
  • 2015-06-15
相关资源
最近更新 更多