1. 程式人生 > >jsp兩次foreach迴圈輸出list.list()的資料生成不規則table

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♪(・ω・)ノ。寫了這麼多部落格都沒有人關注,好氣呀。

相關推薦

jspforeach迴圈輸出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&