Spring MVC使用jstl 标签c:forEach 遍历输出双层嵌套List的数据方式

在Spring MVC中使用JSTL的c:forEach标签遍历输出双层嵌套List的数据方式,可采用以下步骤:

在Spring MVC中使用JSTL的c:forEach标签遍历输出双层嵌套List的数据方式,可采用以下步骤:

1. 引入jstl标签库

要使用JSTL的标签,需要先引入JSTL的标签库。在Maven中可以通过下面的依赖引入:

<dependency>
  <groupId>jstl</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

引入标签库后,在JSP页面中通过下面的语句引入JSTL的标签库:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

2. 遍历List嵌套List

假设我们有一个名为data的List,它包含若干个元素,每个元素又是一个List,我们要遍历输出data中的所有元素,可以按照以下方式使用c:forEach标签:

<c:forEach items="${data}" var="item">
  <div>
    <c:forEach items="${item}" var="subItem">
      <span>${subItem}</span>
    </c:forEach>
  </div>
</c:forEach>

需要注意的是,在外层c:forEach标签中,我们将data赋值给了items属性,并将item作为循环变量。而在内层的c:forEach标签中,我们将item赋值给了items属性,并将subItem作为循环变量。

3. 完整示例

下面是一个完整的示例,展示如何使用JSTL的c:forEach标签遍历输出双层嵌套List的数据:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>双层嵌套List的遍历方式</title></head>
<body>
<h1>双层嵌套List的遍历方式</h1>
<c:forEach items="${data}" var="item">
  <div>
    <c:forEach items="${item}" var="subItem">
      <span>${subItem}</span>
    </c:forEach>
  </div>
</c:forEach>
</body>
</html>

如果data是这样的一个List:

List<List<String>> data = new ArrayList<>();
data.add(Arrays.asList("1", "2", "3"));
data.add(Arrays.asList("a", "b", "c"));

则页面输出的HTML源码为:

<html>
<head><title>双层嵌套List的遍历方式</title></head>
<body>
<h1>双层嵌套List的遍历方式</h1>

  <div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
  </div>

  <div>
    <span>a</span>
    <span>b</span>
    <span>c</span>
  </div>

</body>
</html>

4. 另一个示例

下面是另一个示例,展示如何使用JSTL的c:forEach标签遍历输出三层嵌套List的数据:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>三层嵌套List的遍历方式</title></head>
<body>
<h1>三层嵌套List的遍历方式</h1>
<c:forEach items="${data}" var="item">
  <ul>
    <li>${item[0]}</li>
    <c:forEach items="${item[1]}" var="innerItem">
      <ul>
        <li>${innerItem[0]}</li>
        <c:forEach items="${innerItem[1]}" var="subInnerItem">
          <li><span>${subInnerItem}</span></li>
        </c:forEach>
      </ul>
    </c:forEach>
  </ul>
</c:forEach>
</body>
</html>

如果data是这样的一个List:

List<List<List<String>>> data = new ArrayList<>();
List<List<String>> item1 = new ArrayList<>();
item1.add(Arrays.asList("Item1", Arrays.asList("1", "2", "3")));
item1.add(Arrays.asList("Item2", Arrays.asList("a", "b", "c")));
data.add(item1);

则页面输出的HTML源码为:

<html>
<head><title>三层嵌套List的遍历方式</title></head>
<body>
<h1>三层嵌套List的遍历方式</h1>

  <ul>
    <li>Item1</li>

      <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
      </ul>

      <ul>
        <li>a</li>
        <li>b</li>
        <li>c</li>
      </ul>

  </ul>

</body>
</html>

如此便可正确地遍历输出三层嵌套List的数据了。

本文标题为:Spring MVC使用jstl 标签c:forEach 遍历输出双层嵌套List的数据方式

基础教程推荐