您的位置:首页 > 编程语言 > Java开发

Struts标签-使用<s:iterator>迭代遍历集合中的集合

2018-02-02 11:51 441 查看
有部分业务需求需要遍历list中的list 

比如当前页面需要显示多个category,每个分类下又对应多个product

创建Category.java

Category除了有id和name属性外,还有List属性 

表示category和product是一对多关系
package com.how2java.bean;

import java.util.List;

public class Category {

int id;
String name;
List<Product> products;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Product> getProducts() {
return products;
}
public void setProducts(List<Product> products) {
this.products = products;
}
}

ProductAction.java

在list()中准备数据

两个category,并且每个category对应3个product
package com.how2java.action;

import java.util.ArrayList;
import java.util.List;

import com.how2java.bean.Category;
import com.how2java.bean.Product;

public class ProductAction {
private Product product;

private List<Category> categories =new ArrayList();

public List<Category> getCategories() {
return categories;
}

public void setCategories(List<Category> categories) {
this.categories = categories;
}

public String show() {
product = new Product();
product.setName("iphone7");
return "show";
}

public String add() {
return "show";
}

public String list() {
Category category1 =new Category();
category1.setId(1);
category1.setName("category1");

Category category2 =new Category();
category2.setId(2);
category2.setName("category2");

categories.add(category1);
categories.add(category2);

List<Product> products1=new ArrayList();
Product p1 = new Product();
p1.setId(1);
p1.setName("product1");
Product p2 = new Product();
p2.setId(2);
p2.setName("product2");
Product p3 = new Product();
p3.setId(3);
p3.setName("product3");

products1.add(p1);
products1.add(p2);
products1.add(p3);

List<Product> products2=new ArrayList();
Product p4 = new Product();
p4.setId(4);
p4.setName("product4");
Product p5 = new Product();
p5.setId(5);
p5.setName("product5");
Product p6 = new Product();
p6.setId(6);
p6.setName("product6");

products2.add(p4);
products2.add(p5);
products2.add(p6);

category1.setProducts(products1);
category2.setProducts(products2);

return "list";

}

public Product getProduct() {
return product;
}

public void setProduct(Product product) {
this.product = product;
}
}

list.jsp

遍历每一个category,接着把每个category下对应的products也遍历出来
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<%@page isELIgnored="false"%>

<table border="1" cellspacing="0">

<tr>
<td>id</td>
<td>name</td>
<td>products</td>
</tr>

<s:iterator value="categories" var="c">
<tr>
<td>${c.id}</td>
<td>${c.name}</td>
<td>
<s:iterator value="#c.products" var="p">
${p.name}<br/>
</s:iterator>
</td>
</tr>
</s:iterator>

</table>

<s:debug/>

测试

重启tomcat,访问页面
http://127.0.0.1:8080/struts/listProduct
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: