struts2标签简单循环数字

    xiaoxiao2025-07-16  6

    一、问题说明

    现在后端传了一个List<Student>(size最多为5),要求前端在table中显示的时候如果不足5个,用空行补全(要求用struts2标签),效果如下图:

    二、代码实现

    说明:用struts2标签实现的两个关键点

    (1)使用<s:iterator>标签中的begin和end属性

    (2)能够获取到已经遍历过的list的size

    <%@ page import="com.kittycoder.datadisplay.po.Student" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.List" %> <%@ taglib prefix="s" uri="/struts-tags" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>遍历list的demo</title> </head> <body> <% // 为了能简单说明问题,就直接在jsp上编写代码块生成list List<Student> studentList = new ArrayList<Student>(); if(studentList == null) { studentList = new ArrayList<Student>(); } Student student = new Student(); student.setSid(1L); student.setSname("张三"); student.setSbirthday("1991-01-01"); student.setSage("10"); studentList.add(student); student = new Student(); student.setSid(2L); student.setSname("李四"); student.setSbirthday("1992-02-02"); student.setSage("20"); studentList.add(student); student = new Student(); student.setSid(3L); student.setSname("王五"); student.setSbirthday("1993-03-03"); student.setSage("30"); studentList.add(student); request.setAttribute("studentList", studentList); %> <table cellpadding="0" cellspacing="0" border="1" style="text-align: center;border-collapse: collapse"> <thead> <tr> <th>学生id</th> <th>学生姓名</th> <th>学生生日</th> <th>学生年龄</th> </tr> </thead> <tbody> <s:iterator value="#request.studentList" status="status"> <tr <s:if test="#status.count%2==0">bgcolor="#F2F2F2" </s:if>> <td>${studentList[status.index].sid}</td> <td>${studentList[status.index].sname}</td> <td>${studentList[status.index].sbirthday}</td> <td>${studentList[status.index].sage}</td> </tr> </s:iterator> <s:iterator begin="#request.studentList.size()+1" end="5"> <tr <s:if test="top%2==0">bgcolor="#F2F2F2" </s:if>> <td>${top}</td> <td></td> <td></td> <td></td> </tr> </s:iterator> </tbody> </table> </body> </html> public class Student { private Long sid; // 学生id private String sname; // 学生姓名 private String sbirthday; // 学生生日 private String sage; // 学生年龄 // 这里省略构造方法以及setter、getter方法 }

    参考链接:

    https://struts.apache.org/tag-developers/iterator-tag.html里的A loop that iterates 5 times

    最新回复(0)