springMVC 在分層,視圖層的數據一般怎么輸出


如javaBean            AAA                       BBB
                                id                             id
                                userName            book
                                                               A_id


AAA有10條數據,      對象BBB中的數據是通過對象AAA查找出來的

頁面顯示要求 
          用戶名                                        書名
          user1                                    book1   book2   book3
          user3                                   book1   book2   book3
          user2                                   book1   book2   book3

如何 將頁面所需要的數據,重新放到一個新對象里面,
將這個對象傳到頁面(repos)
然后直接用EL表達式輸出
如這樣
<c:forEach items="${repos}" var="repo" varStatus="step">
          ${repo.userName}  
       
<c:forEach>
book的數據如何輸出




11 个解决方案

#1


#2


如果 book 是對象,可以 book.屬性 進行輸出

#3


可以定義一個集合類似List<Map<AAA,List<BBB>>這樣,后台通過查詢組合成這樣的集合,頁面用EL表達式通過foreach循環就可以顯示出來;
最外層的List是表示要顯示的AAA集合,List中的Map是表示AAA和AAA對應的BBB集合,這里要注意重寫一下AAA的hash函數和equal函數,使AAA可以作為Map的key

#4


看你的樣子,book是user類的一個集合吧,也按user那輸出唄

#5


可能要對查詢出來的數據再次處理下
AAA中添加一個List<Book> books

循環結果集,根據用戶查詢出他的book添加到books中

頁面上就用 ${repo.bookName}  
AAA中添加一個方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}

#6


引用 3 樓 ZSMJ_2011 的回復:
可以定義一個集合類似List<Map<AAA,List<BBB>>這樣,后台通過查詢組合成這樣的集合,頁面用EL表達式通過foreach循環就可以顯示出來;
最外層的List是表示要顯示的AAA集合,List中的Map是表示AAA和AAA對應的BBB集合,這里要注意重寫一下AAA的hash函數和equal函數,使AAA可以作為Map的key


這個我知道,但會不會很消耗內存

#7


引用 5 樓 thc1987 的回復:
可能要對查詢出來的數據再次處理下
AAA中添加一個List<Book> books

循環結果集,根據用戶查詢出他的book添加到books中

頁面上就用 ${repo.bookName}  
AAA中添加一個方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}

如果記錄特別多,你可以考慮分頁查詢,降低內存消耗,如果數據不是特別多,這是一種簡單有效的方法

#8


引用 6 樓 u010439718 的回復:
Quote: 引用 3 樓 ZSMJ_2011 的回復:

可以定義一個集合類似List<Map<AAA,List<BBB>>這樣,后台通過查詢組合成這樣的集合,頁面用EL表達式通過foreach循環就可以顯示出來;
最外層的List是表示要顯示的AAA集合,List中的Map是表示AAA和AAA對應的BBB集合,這里要注意重寫一下AAA的hash函數和equal函數,使AAA可以作為Map的key


這個我知道,但會不會很消耗內存


如果記錄特別多,可以考慮分頁查詢

#9


5樓正解,贊一個

#10


public String getBookName(){
for(..){
..add方法
}
return bookName;
}

#11


引用 7 樓 ZSMJ_2011 的回復:
Quote: 引用 5 樓 thc1987 的回復:

可能要對查詢出來的數據再次處理下
AAA中添加一個List<Book> books

循環結果集,根據用戶查詢出他的book添加到books中

頁面上就用 ${repo.bookName}  
AAA中添加一個方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}

如果記錄特別多,你可以考慮分頁查詢,降低內存消耗,如果數據不是特別多,這是一種簡單有效的方法



在不分頁的情況下還有沒有別的方法,不通過級聯關系

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com