`

JSTL之<c:forEach>

阅读更多
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<tbody>
<c:forEach var="instance" items="${requestScope.list}" varStatus="status">
	<c:choose>
		<c:when test="${status.index%2==0}" >//斑马线
	   		<tr class="SelcetOff">
	   	</c:when>
		<c:when test="${status.index%2==1}" >
	   		<tr class="SelcetOn">
	   </c:when>
   	</c:choose>
   			<td><div align="center">${instance.userName}</div></td>
   			<td><div align="center">${instance.address }</div></td>
   			<td><div align="center">${instance.role }</div></td>
   			
		    </tr>
</c:forEach>
</tbody>

status.current 当前这次迭代的(集合中的)项
status.index 索引,从0开始,相当于for循环里的i
status.count 计数器,从1开始
status.first 判断是否是第一条
status.last  判断是否是最后一条
status.begin 获得开始时的记录
status.end   获得结束时的记录
status.step  获得步长

${requestScope.list}是一个List<User>,instance是其中的一个实例

<c:forEach items="${requestScope.winMap}" var="entry" varStatus="status" >
				
	<tr><td><c:out value="${entry.key}" />等奖</td><td><c:out value="${entry.value.winCount}" /></td><td><c:out value="${entry.value.winMoney}" /></td></tr>
	<c:if test="${!status.last}">
	<tr><td>追加</td><td><c:out value="${entry.value.winAddCount}" /></td><td><c:out value="${entry.value.winAddMoney}" /></td></tr>
	</c:if>
</c:forEach>

${requestScope.winMap}是一个Map<String,Win>,entry是其中的一个实例,${!status.last}表示不是最后一项


Map map=request.getParameterMap();
Iterator ite = map.entrySet().iterator();
while (ite.hasNext()) {
      Map.Entry mapEntry = (Map.Entry)_ite.next();
      request.setAttribute((String)mapEntry.getKey(), mapEntry.getValue());
}


可参考:
JSTL标签用法 详解
http://blog.csdn.net/zwhfyy/archive/2009/07/09/4335200.aspx

迭代
http://www.java2000.net/p3893

使用JSTL标签格式化时间与货币形式
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<fmt:formatDate value="${date}" pattern="yyyy年MM月dd日 HH:mm:ss"/>

这里的value值是你要格式化的值,一般是后台传送到前台的Date对象  后面的pattern对应的是要显示的格式,可以自定义.

<fmt:formatNumber value="${ entry.pretaxprize/100 }" pattern="##.##" minFractionDigits="2" />元

这里的Value值是任何数值类型,pattern为要显示的格式,此处为显示小数点后两位. minFractionDigits="2" 代表要精确的位数.   记住,这里的值都是通过四舍五入得到的,并非完全精确!


<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
函数 描述
fn:contains(string, substring) 如果参数string中包含参数substring,返回true
fn:containsIgnoreCase(string, substring) 如果参数string中包含参数substring(忽略大小写),返回true
fn:endsWith(string, suffix) 如果参数 string 以参数suffix结尾,返回true
fn:escapeXml(string) 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
fn:indexOf(string, substring) 返回参数substring在参数string中第一次出现的位置
fn:join(array, separator) 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
fn:length(item) 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是 String中的字符数。
fn:replace(string, before, after) 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
fn:split(string, separator) 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
fn:startsWith(string, prefix) 如果参数string以参数prefix开头,返回true
fn:substring(string, begin, end) 返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符${fn:substring("ABC","1","2")}截取结果为“ B ”。
fn:substringAfter(string, substring) 返回参数substring在参数string中后面的那一部分字符串
fn:substringBefore(string, substring) 返回参数substring在参数string中前面的那一部分字符串,${fn:substringBefore("ABCD","BC")}截取的结果为“ A ”。
fn:toLowerCase(string) 将参数string所有的字符变为小写,并将其返回
fn:toUpperCase(string) 将参数string所有的字符变为大写,并将其返回
fn:trim(string) 去除参数string 首尾的空格,并将其返回


EL表达式拾遗:
pageScope、requestScope、sessionScope 和applicationScope对应JSP的pageContext、request、session和application

request.getParameter(String name)
request.getParameterValues(String name)
application.getInitParameter("userid")
分别等价于:
${param.name}
${paramValues.name}
${initParam.userid}

${pageContext.request.queryString}         取得请求的参数字符串
${pageContext.request.requestURL}         取得请求的URL,但不包括请求之参数字符串
${pageContext.request.contextPath}         服务的web application 的名称
${pageContext.request.method}           取得HTTP 的方法(GET、POST)
${pageContext.request.protocol}         取得使用的协议(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser}         取得用户名称
${pageContext.request.remoteAddr }         取得用户的IP 地址
${pageContext.session.new}             判断session 是否为新的
${pageContext.session.id}               取得session 的ID
${pageContext.servletContext.serverInfo}   取得主机端的服务信息
${header["User-Agent"]}  要取得用户浏览器的版本

运算符empty,?:
例:${empty param.name}、${A?B:C}、${A*(B+C)}
分享到:
评论
1 楼 2047699523 2015-04-09  
java jstl标签库demo使用实例教程源代码下载:http://www.zuidaima.com/share/kjstl-p1-s1.htm

相关推荐

    <c:forEach>/jstl-1.2

    &lt;c:forEach&gt; 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行&lt;c:forEach&gt;的本体内容。 语法 语法1:迭代一集合对象之所有成员 &lt;c:forEach [var="varName...

    JSTL标准标签库 <C:out>、<c:set>、<c:remove>和<c:catch>标记 <c:if>、<c:choose>、<c:when>和<c:otherwise>标记 <c:forEach>和<c:forTokens>标记

    1. `&lt;c:forEach&gt;`:用于遍历集合、数组或迭代对象,实现循环操作。 2. `&lt;c:forTokens&gt;`:对字符串进行分割,然后对每个分割出来的元素进行循环处理。 **使用JSTL的好处**: - 提高代码的可读性:通过使用XML样式的...

    c:forEach标签的使用祥解

    在JavaServer Pages (JSP) 开发中,`c:forEach`标签是Java Expression Language (EL) 和 JavaServer Pages Standard Tag Library (JSTL) 的一部分,它提供了一个方便的方式来迭代数组、集合、Map或其他可迭代的数据...

    c:foreach的各种用法

    在JSP(JavaServer Pages)开发中,`&lt;c:forEach&gt;` 是一个非常重要的标签,它属于JSTL(JavaServer Pages Standard Tag Library)的一部分,主要用于循环处理集合、数组等数据结构。相较于传统的JSP Scriptlets,使用...

    c标签-if-foreach-jar

    在这个主题"**c标签-if-foreach-jar**"中,主要涉及到的是JSTL的两个核心标签`&lt;c:if&gt;`和`&lt;c:forEach&gt;`,它们是JSTL提供的条件判断和循环控制标签,通常与`jstl.jar`包一起使用。 首先,让我们详细了解**&lt;c:if&gt;**...

    c标签遍历集合嵌套的List集合

    对于嵌套的集合(例如:List中包含List),使用`c`标签库(JSTL)进行遍历是一种常见的做法。本文将详细介绍如何利用`c:forEach`标签来遍历这种嵌套的数据结构。 #### 1. 基础知识介绍 在Java Web项目中,通常会...

    JSP使用C标签时必须引入的jar包

    C标签库提供了一些类似于Java编程中的控制结构,例如`&lt;c:if&gt;`, `&lt;c:forEach&gt;`, `&lt;c:choose&gt;`, `&lt;c:set&gt;`等,这些标签能够帮助开发者更方便地在JSP页面上进行逻辑处理,而无需过多地编写脚本let或Java表达式。...

    JSP页面中利用C标签动态合并单元格

    首先,我们需要理解JSTL的核心标签库`&lt;c:forEach&gt;`和`&lt;c:if&gt;`,它们将在动态合并单元格的过程中起到关键作用。`&lt;c:forEach&gt;`用于遍历集合,而`&lt;c:if&gt;`用于执行条件判断。 第一种方法是基于列的合并。假设我们有一个...

    jstl标签库

    - **迭代标签**:`&lt;c:forEach&gt;`、`&lt;c:forTokens&gt;`,实现循环遍历。 - **URL操作标签**:`&lt;c:import&gt;`、`&lt;c:param&gt;`、`&lt;c:url&gt;`、`&lt;c:redirect&gt;`,用于处理URL相关的操作。 **4. 使用JSTL的步骤** 1. 将JSTL的`....

    jstl-1.2.rar_JSTL_jstl 1.2_jstl jar_jstl-1.1.2.jar _jstl.jar

    1. **Core**:这是最基本的组件,提供了一系列的控制流标签,如迭代(`&lt;c:forEach&gt;`)、条件语句(`&lt;c:if&gt;`、`&lt;c:choose&gt;`)、URL重写(`&lt;c:url&gt;`)等。 2. **I18N & Format**:国际化和格式化组件,支持日期、时间...

    jstl标签jar包(jstl-api-1.2和jstl-impl-1.2)

    - `&lt;c:forLoop&gt;` 和 `&lt;c:forEach&gt;`:循环操作。 - `&lt;c:url&gt;` 和 `&lt;c:param&gt;`:创建URL并添加参数。 - `&lt;c:remove&gt;`:移除一个变量。 - `&lt;c:redirect&gt;` 和 `&lt;c:forward&gt;`:页面重定向和转发。 **JSTL的SQL库(sql)*...

    jstl-api-1.2.jar、jstl-impl-1.2.jar

    **jstl-api-1.2.jar** 包含了JSTL的接口定义,定义了各种标签的API,比如`&lt;c:forEach&gt;`、`&lt;fmt:formatDate&gt;`等。这个jar文件通常被添加到项目的编译类路径(classpath)中,这样编译器就可以识别JSTL相关的代码,并...

    第8章 JSTL.ppt

    - `&lt;c:forEach&gt;`:遍历集合中的元素,通过`items`属性指定集合,`var`属性定义迭代变量。例如: ``` &lt;c:forEach items="${paramValues.Habit}" var="habit"&gt; ${habit} &lt;/c:forEach&gt; ``` 这段代码会遍历请求...

    JSTL.rar_JSTL_JSTL下载

    1. **Core标签库**:提供了一系列与页面控制流相关的标签,例如`&lt;c:if&gt;`(条件判断)、`&lt;c:forEach&gt;`(迭代)、`&lt;c:choose&gt;`(选择结构)等,这些标签使得开发者可以更方便地在JSP页面上进行逻辑控制。 2. **Format...

    jstl包(jstl和standard)

    4. `&lt;c:forEach&gt;`:迭代遍历集合或数组: ```jsp &lt;c:forEach items="${users}" var="user"&gt; ${user.name} &lt;/c:forEach&gt; ``` 5. `&lt;c:url&gt;`和`&lt;c:param&gt;`:创建URL和添加参数。`&lt;c:url&gt;`用于生成URL,`&lt;c:param&gt;...

    javaWeb练习题.docx

    - JSTL是标准标签库,提供了一系列标签简化JSP页面的编写,如forEach用于迭代。 - EL是表达式语言,允许在JSP页面中简洁地访问数据,如 `${item.price}`。 9. **权限过滤器**: - 权限过滤器通常用于检查用户...

    jstl练习实例,学习JSTL

    - `&lt;c:forEach&gt;`:遍历集合或数组。 - `&lt;c:import&gt;`:动态导入资源。 - `&lt;c:redirect&gt;`和`&lt;c:forward&gt;`:控制请求的转发和重定向。 四、JSTL练习实例 "ch15"这个文件可能代表了第15章的练习内容,通常会包含多个...

    jstl 遍历_jstl遍历_

    例如,`&lt;c:forEach&gt;`标签是用于遍历集合的,它是JSTL中最常用的标签之一。 **2. `&lt;c:forEach&gt;`标签** `&lt;c:forEach&gt;`标签用于遍历任何可迭代的数据源,如ArrayList、LinkedList、HashMap等。其基本语法如下: ```...

    jstl标签库.txt

    &lt;c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]&gt; 遍历代码 &lt;/c:forEach&gt; ``` 其中`items`属性指定要遍历的集合,`var`属性用于存储...

    JSTL中文帮助文档

    - `&lt;c:forEach&gt;` 和 `&lt;c:forTokens&gt;`:循环标签,处理数组、集合和字符串。 - `&lt;c:redirect&gt;` 和 `&lt;c:forward&gt;`:处理请求重定向和转发。 - `&lt;c:url&gt;` 和 `&lt;c:param&gt;`:构建 URL 并添加参数。 2. **I/O 标签库 ...

Global site tag (gtag.js) - Google Analytics