2015-09-28 45 views
4

我需要按順序顯示男孩和女孩的名字。將名稱發送到視圖的數據結構是List<String>JSP - 如何以特定順序顯示元素?

的問題是,結果如下(例如,與一開始,男孩的名字):(如圖有序列表從左至右)

Aaron Abraham Adam 
Alen Alex  Alexander 
.. 

我需要證明它們作爲(有序列表應該從頂部示出爲按鈕然後去第二列)

Aaron  Alen ... 
Abraham Alex 
Adam  Alexander 
... 

不用說,每個組都有不同名稱的數目。例如,與'b'組相比,組'a'可能有更多的名字。

<c:forEach var="name" items="${names}"> 
    <div class="col-md-4"> 
     ${name} 
    </div> 
</c:forEach> 
+1

最重要的是如何實現'$ {名稱}'。也給Java代碼 –

回答

3

首先你需要修復用於顯示數據的列數,對於我的解釋將其作爲3

,讓有n數量的男孩和女孩,在邏輯是第一列,我們將顯示n/3記錄,下一行n/3並在下一列剩餘的記錄

下面是JSP代碼3列顯示:

<div class="col-md-4"> 
    <c:forEach begin="0" end="${fn:length(names)/3}" var="name" items="${names}" varStatus="loop"> 
     ${name}<br/> 
    </c:forEach> 
</div> 
<div class="col-md-4"> 
    <c:forEach begin="${(fn:length(names)/3) + 1}" end="${(fn:length(staffs)/3)*2}" var="name" items="${names}" varStatus="loop"> 
     ${name}<br/> 
    </c:forEach> 
</div> 
<div class="col-md-4"> 
    <c:forEach begin="${((fn:length(names)/3)*2)+1}" var="name" items="${names}" varStatus="loop"> 
     ${name}<br/> 
    </c:forEach> 
</div> 

NB:在這裏,我使用的核心功能JSTL fn:length(names)用於計算所述陣列的長度,對於使用此需要添加

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

在您的頁面頂部。 See this

名稱的排序應該從服務器端自己完成所需的輸出。此外,如果您想要顯示4列或5列,只需更改3所需的列號。它會工作

+0

感謝您的回答,我試圖獎勵賞金,但似乎我應該等待7個小時。 –

+0

@DanielNewtown它的好兄弟! –

+0

@NavasBasheer非常感謝,老兄!它像一個魅力。我只需要在'name'的第二行改變'staff'。 – belgoros

0

第一種方法

  1. 可以使用column-count CSS屬性:https://css-tricks.com/almanac/properties/c/columns/

第二種方法

  1. 愛特納疑心,你可能要更改col-md-4col-md-6讓他們分成兩列: ``` $ {名} ```
  2. 計算有多少名你,那麼如果其他人有到達名字的一半計數時,再切換到第二列
  3. 這是哈克,但工程