jsp兩次foreach迴圈輸出list.list()的資料生成不規則table
先來看一下效果吧:
第3、4行最後兩個資料是合併的,所以說它不規則。
進入正題,我們來看看資料來源:
public class LadingInfo implements Serializable{
//.........
private List<LadingDetail> ladingDetailList;
}
public class LadingDetail implements Serializable{
//...................
}
ladingInfo類以ladingDetail類的物件集合的list型別的屬性,在資料庫中對應了兩張表,一下是service層程式碼:
for (String id : ids) { LadingInfo ladingInfo= dao.getLadingInfoById(id); List<LadingDetail> ladingDetailList = dao.findLadingDetailListByLadingId(id); ladingInfo.setLadingDetailList(ladingDetailList); ladingList.add(ladingInfo); } } //controller往jsp返回資料 model.addAttribute("ladingInfoList",ladingInfoList);
小結一下:一個ladingList有很多ladingInfo物件,一個ladingInfo物件有很多ladingDetail物件,ladingDetail作為ladingInfo的屬性儲存就是一個list集合了。
現在來說說怎麼把ladingList這個list中的資料遍歷在表中顯示出來:
1 <c:forEach items="${ladingInfoList}" var="lading" varStatus="p"> 2 <tr> 3 <c:forEach items="${lading.ladingDetailList}" var="detail" varStatus="pd"> 4 <c:set var="orderSize" value="${fn:length(lading.ladingDetailList)}"></c:set> 5 <c:if test="${pd.index gt 0 }"> 6 <tr> 7 </c:if> 8 <td>${detail.maktx} </td> 9 <td>${lading.consigneeAddress} </td> 10 <td>${lading.consigneeCompany} </td> 11 <c:if test="${pd.index eq 0 }"> 12 <td rowspan="${orderSize>0?orderSize:1}"> </td> 13 <td rowspan="${orderSize>0?orderSize:1}">${lading.ladingCode}</td> 14 </c:if> 15 <c:if test="${pd.index gt 0 }"> 16 </tr> 17 </c:if> 18 </c:forEach> 19 </tr> 20</c:forEach>
解釋一下:先迴圈最外面的ladingInfoList,再迴圈每個物件的list集合屬性;
第4行定義了一個orderSize,這是最後合併列用的引數,在12行用到了;
第5行是說,如果大物件(ladingInfo)的list集合的長度大於0時,這裡的index是從0開始計算(參見:https://blog.csdn.net/qq_39767955/article/details/82691125),也就是說list裡面有兩個以上ladingDetail類的物件時,就增加一個<tr>;
8,9,10行是顯示資料(精簡的部分程式碼,不影響整體效果),第10行是說,當前迴圈list是第一次時(因為這裡的pd.index 等於0),那麼就顯示ladingInfo大物件的資料,並做行合併處理。
15行和以後的用過不用解釋了,都很簡單的。
ps:如果你學會了,並喜歡我的部落格,請關注,點贊,留言,Thanks♪(・ω・)ノ。寫了這麼多部落格都沒有人關注,好氣呀。
相關推薦
jsp兩次foreach迴圈輸出list.list()的資料生成不規則table
先來看一下效果吧: 第3、4行最後兩個資料是合併的,所以說它不規則。 進入正題,我們來看看資料來源: public class LadingInfo implements Serializable{ //......... private List&l
jsp頁面iterator或forEach迴圈輸出list值
Action中: private List<Message> messageList;//省略get,set方法 @Action("/findAllMessageAOP") public String findAllMessageAOP() thro
在foreach迴圈中對list結構進行新增或刪除
在迴圈中對list進行新增或刪除操作,會丟擲currentModifierException,因為在迴圈過程中動態的加入或刪除list元素會導致list的元素數量改變,出現漏項或者無限迴圈等現象。 ·如果要在foreach迴圈中刪除list中的元素,要使用itrator迭代
jsp頁面用foreach迴圈,顯示兩個表的出資訊
在jsp頁面顯示資訊時,從庫裡調取資訊,有時需要關聯到兩個表,比如電影表和類別表,需要顯示出這個電影是哪個類別,那應該怎麼做呢?這裡利用的是hashmap//查詢出電影資訊放入一個list集合中 List<Movies> moviesList=moviesDao
foreach 迴圈,刪除list中的元素是報錯
最近專案中碰到一個從list中去掉一定條件的元素的問題,第一反應就是用foreach進行迴圈操作,具體程式碼如下 if (list1.size() > 0) { for(ParkingOrderEntity parkingOrderEnti
jsp中 c:forEach 如何輸出遞增序號
第一:jsp頁面中引入: <%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%> 第二:建立相應的table
一條sql語句兩次foreach迭代問題
SELECT date_format(a.DataTime,'%H:%i') AS dateTime,SUM(a.nowpower) AS sum FROM (select drt.DataTime,drt.Pac AS nowpower FROM (SE
jsp兩次迭代顯示實體中的set集合
<pre name="code" class="javascript">//當一個實體中有一個set集合的時候我用的時候不能兩次iterator迭代 //所以第二層迭代的時候要要forEa
Spring3 Schedule Task之註解實現 (兩次起動Schedule Task 的解決方案)
什麽 empty task 文件中 註解 work lin schedule ask Spring3 Schedule Task之註解實現 (兩次起步Schedule Task 的解決方案)Spring3 Schedule Task之註解實現 (兩次啟動Schedule T
對於src路徑問題,深層理解的實踐。且對於輸出流write()兩個方法的源碼閱讀。
nco != gpo del ppi 本地 thead name println 根據昨天的總結,可深層理解圖片中src的路徑。所以今天實現了一個想法。就是路徑寫入的是Controller,然後自動去本地找。 其實就是將電腦的本地圖片 顯示出來。通過輸出流的方式。 代碼如下
微信小程式之wx:for迴圈輸出及require引入外部資料
迴圈輸出很有用滴 格式: <view wx:for="{{array}}" wx:for-item="item" wx:for-index="idx"> {{index}}: {{item.message}} </view> wx:for-ite
Best Time to Buy and Sell Stock III 兩次買賣股票的最佳時機 (重重重)
題目: 只能買賣兩次,而且最大手裡只有一隻股票。求最大利潤。 解答: 參考: 程式碼: /* 解釋: 首先,因為能買2次(第一次的賣可以和第二次的買在同一時間),但第二次的買不能在第一次的賣左邊。 所以維護2個表,f1和f2,size都和prices一
縮圖滑鼠經過放大(Element表格迴圈輸出多張圖片)
1.程式碼: <template> <el-popover placement="left" ti
關於360筆試題的一個題目的以下程式碼執行後輸出結果為()思考
在呼叫main方法前先裝載Test類,裝載Test.class,裝載時按順序做靜態成員初始化,即先例項化t1,執行構造程式碼塊,列印blockA,在執行靜態程式碼塊,列印blockB,後面例項化t2,執行構造程式碼塊,列印blockA
Linux Shell-awk中輸出單引號(')
1 場景 在shell指令碼中,單引號‘'’是一個特殊字元,特別是當使用awk命令輸出單引號,即使使用/\'/轉義都無法輸出。 2 分析 嘗試使用單引號的八進位制編碼來替代它進行輸出: awk -F ':' '{print "test.sh \047"$1"\047;
JSP頁面通過c:forEach標籤迴圈遍歷List集合
<c:forEach>標籤有如下屬性: 屬性 描述 是否必要 預設值 items 要被迴圈的資訊 否 無 begin 開始的元素(0=第一個元素,1=第二個元素) 否 0 end 最後一個元
ssm- 兩個list集合資料傳輸到jsp介面 類似for迴圈遍歷出來
後臺傳輸list集合的程式碼@RequestMapping("success.html")public ModelAndView successInfo(){List<Info> list=is.getInfoList();List<String> l
JSP頁面遍歷迴圈List map
JSP頁面遍歷迴圈List<Map<String, Object>> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> ActionContext.get
list集合存list 以及s標籤在foreach迴圈遍歷中用EL表示式取值
特點總結: 在一個iterator集合容器中遍歷另外一個list中的list的,通過iterator中的 status="status"狀態為,同時 <a href="<s:url action="fileformAction_download"/>?f
java List巢狀List進行前臺迴圈輸出
<s:iterator value="XXXXX1" id="list" status="index"> <tr> <s:iterator value="#list2" id="list2" status="index"> <td&