文档章节

<c:foreach>与<c:set>标签配合使用达到纵向列表求和的功能

CoPursuer
 CoPursuer
发布于 2017/04/01 09:32
字数 680
阅读 1142
收藏 0

对于一般的<c:foreach>标签与<c:set>的配合使用,小弟在网上找了很多的小例子,多半都是讲横向求和,也就是说在横向逐行添加<tr><td>的时候在最后一列进行求和。那我们要是想纵向的求一列的和怎么办呢?这就不能copy别人代码了,而是要稍微的明白一点<c:set>原理了(稍微的意思就是我也不太会,O(∩_∩)O哈哈~)

先上代码(为了看的清晰,我就只上传两列的代码,能看懂就行了,其他列都是一样的):

<table id="" class="table table-striped table-bordered dataTable no-footer dtr-inline"
       role="grid" aria-describedby="datatable-buttons_info">
    <thead>
    <tr role="row">
        <th class="sorting_asc" tabindex="0" aria-controls="datatable-buttons" style="width: 57px;">地区划分
        </th>
        <th class="sorting" tabindex="5" aria-controls="datatable-buttons" style="width:57px;">计划监督抽验数量
        </th>
    </tr>
    </thead>
    <tbody>
    <c:forEach items="${monitor}" var="moni" varStatus="status">
        <c:set var="monitorCountTotal" value="${monitorCountTotal+moni.monitorCount}"></c:set>
        <tr role="row" <c:if test="${status.count%2==0}">class="odd" </c:if>>
            <td>${moni.area}</td>
            <td>${moni.monitorCount}</td>
        </tr>
    </c:forEach>
    <tr>
        <td>总计</td>
        <td>${monitorCountTotal}</td>
    </tr>
    </tbody>
</table>

效果呢,是这样的:

那知识点是那些呢?:首先<c:foreach>的功能我就不必多说了,能让我们达到循环遍历嘛,从对象中取值,跟for循环也差不了多少。那么<c:set>怎么回事呢?其实就是在前端页面定义一个对象,然后它也不显示在页面上。所以我们就可以用它进行值的记录了。

定义c:set  :  

<c:set var="monitorCountTotal" value="0"></c:set>

此处定义了一个monitorCountTotal的变量,值是0

要是取值怎么取呢?像下面这样:

<td>${moni.monitorCount}</td>

就取到值了,就像正常那么用。

那么关键的地方来了,如果在页面中你提前写了一个名为a的set  即 <c:set var="a" value="0"> ,那么如果在后面的代码中又定义了一个<c:set var="a" value="2">呢?

再用${moni.monitorCount}取值,结果就会是2而不是0,所以,答案显而易见,我们用新创建同名set的方式去向<c:set>中累加值。至于最上边的横向累加与纵向累加,就看你代码怎么写了,只是位置的问题。

再讲一下之前的

<c:forEach items="${monitor}" var="moni" varStatus="status">
    <c:set var="monitorCountTotal" value="${monitorCountTotal+moni.monitorCount}"></c:set>

${monitorCountTotal+moni.monitorCount}这样的写法就是对之前的monitorCountTotal变量累加上moni.monitorCount的值,多简单。

© 著作权归作者所有

CoPursuer
粉丝 1
博文 3
码字总数 1498
作品 0
长春
程序员
私信 提问
JSTL(JSP Standard Tag Library,JSP标准标签库)

JSTL 库安装 Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)。下载地址:http://archive.apache.org/dist/jakarta/taglib...

开源中国段子手
2016/01/31
134
1
JSTL 学习、应用记录

原来一直没有看过,我说过我是新手,但是好多资料上似乎也不重视 JSTL 。我看项目源代码发现其中使用到了这个标签库,感觉其还真是方便,页面看起来更加清爽。减少了 JAVA 程序员亲自写的代码...

凡尘网络
2015/12/16
9
0
jsp中如何通过API方式获取jstl的变量

一,问题概述 jstl的出现,的确标准化了我们的jsp开发,也使得页面变得更加清晰,这也正是J2EE推出jstl的一个意图。例如jsp中要求取出request中保存的一个属性username,以前习惯的方式: <%...

红薯
2009/06/22
5.4K
1
JSTL标准标签库(上)

班级编号:VIP14 学员名字:端碗吹水 课程名称:JSTL标准标签库(上) 上课时间:2017-12-19 JSTL标准标签库简介: JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个不断...

ZeroOne01
2017/12/22
0
0
c标签forEach和c标签if的常规使用

一、外围因素 1、添加JSTL支持:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 需要jstl和standard jar包的支持。 2、项目中常用语句: <c:set var="ctx" value="${page......

专注97
2017/10/24
27
0

没有更多内容

加载失败,请刷新页面

加载更多

IT兄弟连 HTML5教程 HTML5表单 新增的表单属性1

HTML5 Input表单为<form>和<input>标签添加了几个新属性,属性如表1。 1 autocomplete属性 autocomplete属性规定form或input域应该拥有自动完成功能,当用户在自动完成域中开始输入时,浏览器...

老码农的一亩三分地
37分钟前
5
0
OSChina 周五乱弹 —— 葛优理论+1

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享米津玄師的单曲《LOSER》: mv中的舞蹈诡异却又美丽,如此随性怕是难再跳出第二次…… 《LOSER》-...

小小编辑
今天
990
16
nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
15
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部