<c:foreach var="detail" items="${mailManager.detailList}" varStatus="status"

本文详细介绍了如何使用JSTL(JavaServer Pages Standard Tag Library)在网页上动态展示订单数据,包括如何遍历集合、获取集合长度、使用变量状态等关键步骤。

 current当前这次迭代的(集合中的)项
index当前这次迭代从 0 开始的迭代索引
count当前这次迭代从 1 开始的迭代计数
first用来表明当前这轮迭代是否为第一次迭代的标志
last用来表明当前这轮迭代是否为最后一次迭代的标志
begin属性值
end属性值
step属性值

其中一个例子,其他的类似
<c:forEach items="${list1}" var="obj"varStatus="stat">
${stat.index}
...
</c:forEach>

本次开发中运用了

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

<table style="width: 100%; margin-top: 10px" class="simple" >
      <tr>
       <td colspan="6" class="td_title">您的訂購資料如下:</td>
      </tr>
      <tr>
         <td class="th_head">訂單編號</td>
         <td class="th_head">商品名稱</td>
         <td class="th_head">規格</td>
         <td class="th_head">單價</td>
         <td class="th_head">數量</td>
         <td class="th_head">小計</td>
        </tr>
        <tr>
         <c:set var="oLine" value="${fn:length(mailManager.detailList)}"/>  不能写成<c:set var="oLine" value="${mailManager.detailList.size()}">会报错的啦
         <td rowspan="${oLine}">${mailManager.orderMain.orderNo}</td>
         <c:forEach var="detail" items="${mailManager.detailList}" varStatus="status">
         <td>${detail.activity.activityName}</td>
         <td>${status.index+1}</td>
         <td>${detail.groupPrice}</td>
         <td>${detail.qty}</td>
         <td>${detail.groupPrice*detail.qty}</td>
         </tr>
         <c:if test="${status.index+1 < oLine}">
         <tr>
         </c:if>
         </c:forEach>
     </table>

把下面的source,改写成thymeleaf形式文件。 <%@ page contentType="text/html; charset=UTF-8"%> <%@ page pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <!DOCTYPE html> <html> <head> <!-- IEバージョン設定 --> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE11"> <title> 会社マスタ一覧画面</title> <!-- jQuery設定 --> <script src="<c:url value="/resources/js/jquery-1.11.3.min.js" />"></script> <!-- CSS設定 --> <link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/tsocms.css" />"> <script> $(function() { $(".stockCompanyMasterListTable tr:odd").addClass("odd"); $(".stockCompanyMasterListTable tr:even").addClass("even"); }); </script> <script> <!-- function stockCompanyclearButton() { document.select.mechSubCode.value = ""; document.select.stockCompanyName.value =""; } function updateSubmitCheck() { if(!radioCheck("更新対象をラジオボタンで選択してください。")) return; stockCompanyMasterListUpdateButton(); } function deleteSubmitCheck() { if(!radioCheck("削除対象をラジオボタンで選択してください。")) return; stockCompanyMasterListDeleteButton(); } function stockCompanySearchButton() { var target = document.getElementById("stockCompanyMasterListForm"); target.action = "${pageContext.request.contextPath}/stockcompanymasterlist/select"; target.submit(); } function stockCompanyMasterListDeleteButton() { var target = document.getElementById("stockCompanyMasterListForm"); target.action = "${pageContext.request.contextPath}/stockcompanymasterdelete"; target.submit(); } function stockCompanyMasterListUpdateButton() { var target = document.getElementById("stockCompanyMasterListForm"); target.action = "${pageContext.request.contextPath}/stockcompanymasterupdate"; target.submit(); } function radioCheck(msg) { var flag = false; var elm = document.getElementsByName('selectedKey'); for (i = 0; i < elm.length; i++) { if (elm[i].checked) { flag = true; } } if (!flag) { alert(msg); return false; } return true; } //--> </script> </head> <body> <!-- <!-- ページ見出し --> <div> <h1> 会社マスタ一覧画面</h1> </div> <form:form name="select" modelAttribute="stockCompanyMasterListForm" method="post" action="${pageContext.request.contextPath}/stockcompanymasterlist/select"> <!-- 会社結果一覧表 --> <div class="stockCompanyMasterListTableAll"> <div class="keyleft"> <!-- 検索キー --> <!-- 機構加入者コード --> <div class="searchkey"> <span class="mechSubCodeKey">機構加入者コード</span> <form:input type="search" path="mechSubCode" size="45" /> </div> <!-- 会社名 --> <div class="searchkey"> <span class="stockCompanyNameKey">会社名</span> <form:input type="search" path="stockCompanyName" size="45" /> </div> <!-- Hidden検索キー --> <form:hidden path="mechSubCodeHidden" /> <form:hidden path="stockCompanyNameHidden" /> </div> <div class="keyright"> <!-- 検索ボタン --> <form:button type="submit" name="stockCompanySearchbutton" id="stockCompanySearchbutton" onclick="stockCompanySearchButton()">検索</form:button> <!-- 初期化ボタン --> <form:button type="button" name="stockCompanyclearbutton" id="stockCompanyclearbutton" onclick="stockCompanyclearButton()">初期化</form:button> </div> <div class="stockCompanyMasterListTable"> <table class="stockCompanyMasterListTable"> <thead class="stockCompanyMasterList"> <tr> <th class="radioButton"></th> <th class="mechSubCode">機構加入者コード</th> <th class="stockCompanyName">会社名</th> <th class="stockCompanyNameKana">会社名カナ</th> <th class="effectiveDate">適用開始日</th> <th class="expireDate">適用終了日</th> </tr> </thead> <tbody class="searchListBody"> <c:forEach var="detail" items="${stockCompanyMasterListForm.stockCompanyMasterListDetailFormList}" varStatus="status"> <tr> <td class="radioButton"> <form:radiobutton path="selectedKey" value="${detail.mechanismSubscriberCd},${detail.effectiveDate}" /><br> </td> <td class="mechSubCode"> <c:out value="${detail.mechanismSubscriberCd}"></c:out> </td> <td class="stockCompanyName"> <c:out value="${detail.stockcompany}"></c:out> </td> <td class="stockCompanyNameKana"> <c:out value="${detail.stockcompanyKana}"></c:out> </td> <td class="effectiveDate"> <c:out value="${detail.effectiveDate}"></c:out> </td> <td class="expireDate"> <c:out value="${detail.expireDate}"></c:out> </td> </tr> </c:forEach> </tbody> </table> </div> <div class="left"></div> <div class="right"> <!-- 新規登録ボタン --> <form:button type="button" name="stockCompanyMasterListRegisterbutton" id="stockCompanyMasterListRegisterbutton" onclick="location.href='${pageContext.request.contextPath}/stockcompanymasterregister'">新規登録</form:button> <!-- 更新ボタン --> <form:button type="button" name="stockCompanyMasterListUpdatebutton" id="stockCompanyMasterListUpdatebutton" onclick="updateSubmitCheck()">更新</form:button> <!-- 削除ボタン --> <form:button type="button" name="stockCompanyMasterListDeletebutton" id="stockCompanyMasterListDeletebutton" onclick="deleteSubmitCheck()">削除</form:button> <!-- 戻るボタン --> <form:button type="button" name="stockCompanyMasterListReturnbutton" id="stockCompanyMasterListReturnbutton" onclick="location.href='${pageContext.request.contextPath}/master'">戻る</form:button> </div> </div> </form:form> </body> </html>
07-18
<%-- Created by IntelliJ IDEA. User: 19767 Date: 2018/11/19 Time: 15:03 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html> <html> <head> <title>商品列表</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link type="text/css" rel="stylesheet" href="css/bootstrap.css"> <link type="text/css" rel="stylesheet" href="css/style.css"> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/bootstrap.min.js"></script> <script type="text/javascript" src="layer/layer.js"></script> <script type="text/javascript" src="js/cart.js"></script> </head> <body> <!--header--> <jsp:include page="/header.jsp"> <jsp:param name="flag" value="1"></jsp:param> </jsp:include> <!--banner--> <div class="banner"> <div class="container"> <div id="carousel-example-generic" class="carousel slide" data-ride="carousel"> <!-- Indicators --> <ol class="carousel-indicators" id="olnum"> <c:forEach items="${scroll}" var="g" varStatus="status"> <c:choose> <c:when test="${status.first}"> <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li> </c:when> <c:otherwise> <li data-target="#carousel-example-generic" data-slide-to="${status.index}"></li> </c:otherwise> </c:choose> </c:forEach> </ol> <!-- Wrapper for slides --> <div class="carousel-inner" role="listbox" id="lunbotu" style="width: 1242px; height: 432px;"> <c:forEach items="${scroll}" var="g" varStatus="status"> <c:choose> <c:when test="${status.first}"> <div class="item active"> <h2 class="hdng"><a href="/goods_detail?id=${g.id}">${g.name}</a><span></span></h2> <p>今日精选推荐</p> <a class="banner_a" href="javascript:;" onclick="buy(${g.id})">立刻购买</a> <div class="banner-text"> <a href="/goods_detail?id=${g.id}"> <img src="${g.cover}" alt="${g.name}" width="350" height="350"> </a> </div> </div> </c:when> <c:otherwise> <div class="item"> <h2 class="hdng"><a href="/goods_detail?id=${g.id}">${g.name}</a><span></span></h2> <p>今日精选推荐</p> <a class="banner_a" href="javascript:;" onclick="buy(${g.id})">立刻购买</a> <div class="banner-text"> <a href="/goods_detail?id=${g.id}"> <img src="${g.cover}" alt="${g.name}" width="350" height="350"> </a> </div> </div> </c:otherwise> </c:choose> </c:forEach> </div> <!-- Controls --> <%--<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a>--%> </div> </div> </div> <!--//banner--> <div class="subscribe2"></div> <!--gallery--> <div class="gallery"> <div class="container"> <div class="alert alert-danger">热销推荐</div> <div class="gallery-grids"> <c:forEach items="${hotList}" var="g"> <div class="col-md-4 gallery-grid glry-two"> <a href="/goods_detail?id=${g.id}"> <img src="${g.cover}" class="img-responsive" alt="${g.name}" width="350" height="350"/> </a> <div class="gallery-info galrr-info-two"> <p> <span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span> <a href="/goods_detail?id=${g.id}">查看详情</a> </p> <a class="shop" href="javascript:;" onclick="buy(${g.id})">立刻购买</a> <div class="clearfix"></div> </div> <div class="galy-info"> <p>${g.typeName} > ${g.name}</p> <div class="galry"> <div class="prices"> <h5 class="item_price">¥ ${g.price}</h5> </div> <div class="clearfix"></div> </div> </div> </div> </c:forEach> </div> <div class="clearfix"></div> <div class="alert alert-info">新品推荐</div> <div class="gallery-grids"> <c:forEach items="${newList}" var="g"> <div class="col-md-3 gallery-grid "> <a href="/goods_detail?id=${g.id}"> <img src="${g.cover}" class="img-responsive" alt="${g.name}"/> </a> <div class="gallery-info"> <p> <span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span> <a href="/goods_detail?id=${g.id}">查看详情</a> </p> <a class="shop" href="javascript:;" onclick="buy(${g.id})">立刻购买</a> <div class="clearfix"></div> </div> <div class="galy-info"> <p>${g.typeName} > ${g.name}</p> <div class="galry"> <div class="prices"> <h5 class="item_price">¥ ${g.price}</h5> </div> <div class="clearfix"></div> </div> </div> </div> </c:forEach> </div> </div> </div> <!--//gallery--> <!--subscribe--> <div class="subscribe"></div> <!--//subscribe--> <!--footer--> <jsp:include page="/footer.jsp"></jsp:include> </body> </html>帮我解决问题
06-11
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值