2015-09-28 60 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. 这是哈克,但工程