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

有部分业务需求需要遍历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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值