使用seam做了个项目,展示一个自定义列表输出,分别定义表格标题List headerList和数据List<List> dataList,然后实现两种展示方式。一种是普通表格方式,一条数据在一行显示,这样我们可以使用rich:dataTable ,然后自定义迭代部分可以用rich:columns 来实现,注意index是表示每行数据的行索引,代码如下:
<rich:dataTable value="#{orderResDetailHome.dataList}" var="list" rows="10" style="width:100%;" rowKeyVar="rowNum">
<rich:column>
<f:facet name="header">序号</f:facet>
#{rowNum+1}
</rich:column>
<rich:columns value="#{orderResDetailHome.headerList}" var="dataHeader" index="idx">
<f:facet name="header">#{dataHeader}</f:facet>
#{list[idx+2]}
</rich:columns>
</rich:dataTable>
其中#{list[idx+2]}中加2是因为数据列开始两列数据多输出用作其他。
还有一种展示方式,没条数据不是在一行显示,而是把每条数据放到一个grid中去,然后依次显示,但是这样的话迭代部分的数据就无法使用rich:columns 来实现了,可以考虑使用c:forEach,其中可以定义varStatus="status",
取#{status.index}就可以获得每行数据的行索引,这样就方便实现了,代码如下:
<rich:dataGrid var="list"
columns="1"
elements="10"
rowKeyVar="rowNum"
value="#{orderResDetailHome.dataList}">
<h:panelGrid columns="1">
<s:decorate template="/layout/display.xhtml">
<ui:define name="label">序号</ui:define>
#{rowNum+1}
</s:decorate>
<c:forEach var='dataHeader' items='#{orderResDetailHome.headerList}' varStatus="status">
<s:decorate template="/layout/display.xhtml">
<ui:define name="label">#{dataHeader}</ui:define>
#{list[status.index+2]}
</s:decorate>
</c:forEach>
</h:panelGrid>
</rich:dataGrid>
后者适合在小屏幕设备上展示。
分享到:
相关推荐
相较于传统的JSP Scriptlets,使用 `<c:forEach>` 能够使得代码更加简洁、易于维护。 #### 一、标签属性详解 ##### 1. `var` `var` 属性用于定义每次循环中使用的变量名,该变量将被设置为当前迭代中的元素。 **...
本文将深入探讨`c:forEach`标签的使用方法和其在实际开发中的应用场景。 ### `c:forEach`标签的基本结构 `c:forEach`标签通常用于遍历集合或数组,其基本语法如下: ```jsp <c:forEach items="yourCollection" ...
(当前索引:${status.index},总项数:${status.count}) </c:forEach> ``` 3. **遍历Map**:遍历Map时,可以用`var`指定键变量,用`varValue`指定值变量: ```jsp <c:forEach items="${map}" var="entry"> ...
<c:forEach items="${map}" var="entry" varStatus="status"> Key: ${entry.key}, Value: ${entry.value} <!-- 或者 --> Key: ${status.index}, Value: ${map[status.index]} </c:forEach> ``` 5. 变量范围:...
jstl forEach 标签详解 jstl forEach 标签是 JavaServer Pages Standard Tag Library (JSTL) 中的一个标签,用于循环控制,可以将...我们使用 `status.index` 来判断当前行的索引,并根据索引的奇偶性来设置背景色。
假设有一个列表`list`,其中包含了多个字符串,我们可以使用`<c:forEach>`标签来遍历这个列表并显示每个元素: ```jsp <c:forEach var="item" items="${list}" varStatus="status"> 当前元素:${item} - 索引:${...
<c:forEach var="item" items="${dataList}" varStatus="status"> <!-- 假设每条数据有四个属性,分别是name, age, address, email --> <c:if test="${status.index % 4 == 0}"> ${item.name} ${item.age} $...
- **`<c:if test="${loop.count%5==0}">`**:使用`<c:if>`标签来判断当前项的索引(从1开始计数)是否能被5整除,如果满足条件,则执行其中的代码。 ##### 2.3 循环状态变量`varStatus` 循环状态变量`varStatus`是...
${uu} --------- ${status.index} ---- 输出索引从 0 开始 </c:forEach> ``` - 指定范围遍历: ```jsp <c:forEach var="i" begin="1" end="5"> ${i} </c:forEach> ``` - 指定步长遍历: ```jsp <c:...
<c:forEach items="${list}" var="item" varStatus="status"> <!-- 循环体内容 --> </c:forEach> ``` `items`属性定义要遍历的集合,`var`属性用于设置循环变量,`varStatus`则可以获取到关于循环状态的信息,如...
${element} - 当前索引: ${status.index}, 计数: ${status.count} </c:forEach> ``` 3. **异常处理**: `<c:catch>`标签用于捕获并处理异常。当在`<c:catch>`和`<c:catch>`之间的代码抛出异常时,它会存储这个...
- `index`:获取当前项的索引位置。 - `count`:获取当前项的计数值,从1开始。 - `first`:判断当前项是否为首项。 - `last`:判断当前项是否为末项。 - `begin`:获取迭代起始位置。 - `end`:获取迭代结束位置。 ...
<c:forEach var="item" items="${list}" varStatus="status"> <!-- 循环体内容 --> </c:forEach> ``` - **示例**: ```jsp <c:forEach var="name" items="${list}" varStatus="i"> ${i.index} // 从0开始的...
例如,你可以使用`<c:forEach>`标签遍历数据库查询结果,并在循环中根据行索引判断是否为偶数,以此来插入不同的CSS类,实现隔行变色: ```jsp <c:forEach items="${yourDataList}" var="item" varStatus=...
- **推荐做法**:使用 `for (var i = 0; i < array.length; i++)` 或者 `array.forEach()` 方法来迭代数组。 ##### 2. clear - **用途**:清空数组。 - **示例**:`array.clear();` ##### 3. clone - **用途**:...
- **解析**: 使用`selectedIndex`属性可以获取下拉列表中被选项目的位置索引。例如,在HTML中通过`<select id="mySelect">...</select>`定义一个下拉列表后,可以通过`document.getElementById("mySelect")....
以下是如何使用客户端创建和添加文档到索引: ```javascript async function indexDocument(indexName, document) { try { await client.index({ index: indexName, body: document, }); console.log('...
- `<c:if test="${((status.index)%3)==0}"><tr></c:if>`:当当前索引值是3的倍数时,即为每行的第一个元素,开始新的`<tr>`(表格行)。 - `<c:if test="${((status.index+1)%3)==0}"></tr></c:if>`:每三个元素...
if (c.DisplayIndex > index - 1) c.Visible = false; c.SortMode = DataGridViewColumnSortMode.NotSortable; } dgvBook.Columns["cUpdate"].Width = 40; dgvBook.Columns["cDelete"].Width = 40; ///设置行...