415、Java框架69 -【Struts - 多重迭代】 2020.11.26

132 篇文章 0 订阅
11 篇文章 0 订阅

目录

0、多重迭代

1、效果

2、创建Category.java

3、ProductAction.java

4、list.jsp

5、测试

6、参考链接


 

0、多重迭代

有部分业务需求需要遍历list中的list 
比如当前页面需要显示多个category,每个分类下又对应多个product

 

1、效果

访问测试地址:

http://127.0.0.1:8080/struts/listProduct

ææ

 

2、创建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;
    }
}

3、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;
    }
}

4、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/>

5、测试

重启tomcat,访问页面

http://127.0.0.1:8080/struts/listProduct

æµè¯

6、参考链接

[01]How2j - Struts - 多重迭代

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值