`

c:forEach status.index 行索引的使用

    博客分类:
  • seam
阅读更多

使用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>

 后者适合在小屏幕设备上展示。

 

 

 

 

0
1
分享到:
评论

相关推荐

    c:foreach的各种用法

    相较于传统的JSP Scriptlets,使用 `&lt;c:forEach&gt;` 能够使得代码更加简洁、易于维护。 #### 一、标签属性详解 ##### 1. `var` `var` 属性用于定义每次循环中使用的变量名,该变量将被设置为当前迭代中的元素。 **...

    c:forEach标签的使用祥解

    本文将深入探讨`c:forEach`标签的使用方法和其在实际开发中的应用场景。 ### `c:forEach`标签的基本结构 `c:forEach`标签通常用于遍历集合或数组,其基本语法如下: ```jsp &lt;c:forEach items="yourCollection" ...

    jstl 使用文档方便你快速入门 ,能够快速上手使用JSTL技术.pdf

    (当前索引:${status.index},总项数:${status.count}) &lt;/c:forEach&gt; ``` 3. **遍历Map**:遍历Map时,可以用`var`指定键变量,用`varValue`指定值变量: ```jsp &lt;c:forEach items="${map}" var="entry"&gt; ...

    jstl 遍历_jstl遍历_源码.zip

    &lt;c:forEach items="${map}" var="entry" varStatus="status"&gt; Key: ${entry.key}, Value: ${entry.value} &lt;!-- 或者 --&gt; Key: ${status.index}, Value: ${map[status.index]} &lt;/c:forEach&gt; ``` 5. 变量范围:...

    jstl标签 forEach详解

    jstl forEach 标签详解 jstl forEach 标签是 JavaServer Pages Standard Tag Library (JSTL) 中的一个标签,用于循环控制,可以将...我们使用 `status.index` 来判断当前行的索引,并根据索引的奇偶性来设置背景色。

    jstl中C标签详解

    假设有一个列表`list`,其中包含了多个字符串,我们可以使用`&lt;c:forEach&gt;`标签来遍历这个列表并显示每个元素: ```jsp &lt;c:forEach var="item" items="${list}" varStatus="status"&gt; 当前元素:${item} - 索引:${...

    从后台取得的数据list在jsp页面控制table每行显示四列

    &lt;c:forEach var="item" items="${dataList}" varStatus="status"&gt; &lt;!-- 假设每条数据有四个属性,分别是name, age, address, email --&gt; &lt;c:if test="${status.index % 4 == 0}"&gt; ${item.name} ${item.age} $...

    JSTL循环语法,java

    - **`&lt;c:if test="${loop.count%5==0}"&gt;`**:使用`&lt;c:if&gt;`标签来判断当前项的索引(从1开始计数)是否能被5整除,如果满足条件,则执行其中的代码。 ##### 2.3 循环状态变量`varStatus` 循环状态变量`varStatus`是...

    jstl实例与使用总结

    ${uu} --------- ${status.index} ---- 输出索引从 0 开始 &lt;/c:forEach&gt; ``` - 指定范围遍历: ```jsp &lt;c:forEach var="i" begin="1" end="5"&gt; ${i} &lt;/c:forEach&gt; ``` - 指定步长遍历: ```jsp &lt;c:...

    JSTL标签使用手册-中文版.zip

    &lt;c:forEach items="${list}" var="item" varStatus="status"&gt; &lt;!-- 循环体内容 --&gt; &lt;/c:forEach&gt; ``` `items`属性定义要遍历的集合,`var`属性用于设置循环变量,`varStatus`则可以获取到关于循环状态的信息,如...

    基本JSTL标签用法

    ${element} - 当前索引: ${status.index}, 计数: ${status.count} &lt;/c:forEach&gt; ``` 3. **异常处理**: `&lt;c:catch&gt;`标签用于捕获并处理异常。当在`&lt;c:catch&gt;`和`&lt;c:catch&gt;`之间的代码抛出异常时,它会存储这个...

    JSTL core c 标签 使用全集

    - `index`:获取当前项的索引位置。 - `count`:获取当前项的计数值,从1开始。 - `first`:判断当前项是否为首项。 - `last`:判断当前项是否为末项。 - `begin`:获取迭代起始位置。 - `end`:获取迭代结束位置。 ...

    c标签 sql标签 格式化标签fmt的使用

    &lt;c:forEach var="item" items="${list}" varStatus="status"&gt; &lt;!-- 循环体内容 --&gt; &lt;/c:forEach&gt; ``` - **示例**: ```jsp &lt;c:forEach var="name" items="${list}" varStatus="i"&gt; ${i.index} // 从0开始的...

    表格隔行变色

    例如,你可以使用`&lt;c:forEach&gt;`标签遍历数据库查询结果,并在循环中根据行索引判断是否为偶数,以此来插入不同的CSS类,实现隔行变色: ```jsp &lt;c:forEach items="${yourDataList}" var="item" varStatus=...

    prototype_1_6教程

    - **推荐做法**:使用 `for (var i = 0; i &lt; array.length; i++)` 或者 `array.forEach()` 方法来迭代数组。 ##### 2. clear - **用途**:清空数组。 - **示例**:`array.clear();` ##### 3. clone - **用途**:...

    Java面试复习5附答案

    - **解析**: 使用`selectedIndex`属性可以获取下拉列表中被选项目的位置索引。例如,在HTML中通过`&lt;select id="mySelect"&gt;...&lt;/select&gt;`定义一个下拉列表后,可以通过`document.getElementById("mySelect")....

    Node.js-Elasticsearch的官方Node.js客户端库

    以下是如何使用客户端创建和添加文档到索引: ```javascript async function indexDocument(indexName, document) { try { await client.index({ index: indexName, body: document, }); console.log('...

    jsp 页面上图片分行输出小技巧

    - `&lt;c:if test="${((status.index)%3)==0}"&gt;&lt;tr&gt;&lt;/c:if&gt;`:当当前索引值是3的倍数时,即为每行的第一个元素,开始新的`&lt;tr&gt;`(表格行)。 - `&lt;c:if test="${((status.index+1)%3)==0}"&gt;&lt;/tr&gt;&lt;/c:if&gt;`:每三个元素...

    图书管理系统

    if (c.DisplayIndex &gt; index - 1) c.Visible = false; c.SortMode = DataGridViewColumnSortMode.NotSortable; } dgvBook.Columns["cUpdate"].Width = 40; dgvBook.Columns["cDelete"].Width = 40; ///设置行...

Global site tag (gtag.js) - Google Analytics