SpringMVC学习之JSTL条件行为和遍历行为详解

 更新时间:2021年8月16日 16:00  点击:1428

JSTL条件行为和遍历行为

JSTL的条件行为标签有四个:if,choose,when,otherwise标签

1、if标签

是对某一个条件进行测试,结果为true就执行它的body content。测试结果保存在Boolean对象中,并创建有届变量来保存这个Boolean对象。利用var和scope属性分别定义有界变量的名称和范围。

两种形式:

1) 没有body content

<c:if test="condition" var="varName" [scope="page|request|session|application"] />

此情况的var 一般是通过其他标签在同一个JSP的后续阶段再进行测试

2)

<c:if test="conditin" [var="varName"] [scope="page|request|session|application"] >
body content
</c:if>

if标签的属性
属性 类型 描述
test+ 布尔 决定处理任何现有bodycontent的测试条件
var 字符串 引用测试条件值的有界变量名称;var的类型为Boolean
scope 字符串 var定义的有界变量的范围

PS:模拟else的情况可一使用两次if,一次正常,一次相反

2、choose when 和otherwise标签

choose,when和Java中的switch,case类似

choose标签中必须嵌有一个或者多个when标签,每个when标签都表示一种可以计算和处理的情况,otherwise标签则用于默认的条件块,假如没有任何一个when标签的处理结果为true,则otherwise将被处理,otherwise必须放在最后一个when之后.

choose和otherwise标签没有属性,when标签必须带有定义测试条件的test属性,用来决定是否处理bodycontent.

3、遍历行为forEach

3.1 forEach 会无数次的反复遍历body content 或者对象的集合

可以被遍历的对象包括java.util.Collection,java.util.Map的全部实现,以及对象数组或者主类型,有两种形式:

1) 固定的次数重复body content

<c:forEach [var="varName"] begin="begin" end="end" step="step" >
body content
</c:forEach>

2) 用于遍历对象集合

<c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [ end="end"] [step="step"]>
body content
</c:forEach>

forEach标签的属性
属性 类型 描述
var 字符串 引用遍历当前项目的有界变量名称
items+ 支持的任意类型 遍历的对象的集合
varStatus 字符串 保存遍历状态的有界变量的名称,类型值是javax.servlet.jsp.jstl.core.LoopTagStatus,带有count属性,返回当前的次数
begin+ 整数 如果指定items,遍历将从指定的索引处的项目开始,如果没有指定items,遍历将从设定的索引值开始,如果指定begin必须大于等于0
end+ 整数 如果指定items,遍历将从指定的索引处的项目结束,如果没有指定items,遍历将从设定的索引值结束
step+ 整数 遍历将只处理间隔指定step的项目,从一个项目开始,在这种情况下,step的值必须大于等于1

PS:var创建的有界变量的名称只在该forEach中使用,一到</c:forEach>处就会被删除。

3.2 forTokens标签

forTokens标签用来遍历以特定的分隔符隔开的令牌,用delims指定的分隔符,将元素分开

语法如下:

<c:forTokens items ="stringOfTokens" delims="delimiters" [var="varName" ] [varStatus="varStatusname"]  [begin="begin"] [end="end" ] [step="step"]>
body content
</c:forTokens>

forTokens标签的属性
属性 类型 描述
var 字符串 引用遍历当前项目的有界变量名称
items+ 支持的任意类型 遍历的对象的集合
varStatus 字符串 保存遍历状态的有界变量的名称,类型值是javax.servlet.jsp.jstl.core.LoopTagStatus,带有count属性,返回当前的次数
begin+ 整数 如果指定items,遍历将从指定的索引处的项目开始,如果没有指定items,遍历将从设定的索引值开始,如果指定begin必须大于等于0
end+ 整数 如果指定items,遍历将从指定的索引处的项目结束,如果没有指定items,遍历将从设定的索引值结束
step+ 整数 遍历将只处理间隔指定step的token,从一个token开始,在这种情况下,step的值必须大于等于1
delims+ 字符串 一组分隔符

以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。

[!--infotagslink--]

相关文章

  • js遍历json的key和value的实例

    下面小编就为大家带来一篇js遍历json的key和value的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-01-26
  • c# 遍历 Dictionary的四种方式

    这篇文章主要介绍了c# 遍历 Dictionary的四种方式,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2020-12-08
  • JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍

    下面小编就为大家带来一篇JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
  • jquery对Json的各种遍历方法总结(必看篇)

    下面就为大家带来一篇jquery对Json的各种遍历方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-02
  • jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结

    借助jQuery我们可以轻松地堆DOM元素进行向上、向下遍历以及同级的遍历,本文我们即来整理jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结:...2016-07-25
  • C# 遍历datatable字段名和value的案例

    这篇文章主要介绍了C# 遍历datatable字段名和value的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-19
  • JS中的二叉树遍历详解

    这篇文章主要为大家详细介绍了JS中的二叉树遍历,何为二叉树,什么是二叉树的遍历,感兴趣的小伙伴们可以参考一下...2016-03-22
  • Xml中使用foreach遍历对象实现代码

    这篇文章主要介绍了Xml中使用foreach遍历对象实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-04
  • JavaScript循环遍历的24个方法,你都知道吗

    这篇文章主要给大家介绍了关于JavaScript循环遍历的24个方法,文中对每种方法都给出了详细的实例代码,方便大家理解学习,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-09-15
  • Go 容器遍历的实现示例

    Go 语言提供的基础容器,免不了要查询容器中的数据,那么是如何实现遍历的呢?本文将会介绍几种常用容易的遍历及其使用。感兴趣的可以了解一下...2021-06-13
  • thinkPHP中多维数组的遍历方法

    这篇文章主要介绍了thinkPHP中多维数组的遍历方法,以简单实例形式分析了thinkPHP中foreach语句的使用技巧,需要的朋友可以参考下...2016-01-12
  • C#使用foreach语句遍历二维数组的方法

    这篇文章主要介绍了C#使用foreach语句遍历二维数组的方法,实例分析了C#遍历数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 使用jQuery.form.js/springmvc框架实现文件上传功能

    这篇文章主要介绍了使用jQuery.form.jsspringmvc框架实现文件上传功能,非常具有参考借鉴价值,感兴趣的朋友一起学习吧...2016-05-14
  • SpringMVC和rabbitmq集成的使用案例

    这篇文章主要介绍了SpringMVC和rabbitmq集成的使用案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-20
  • SpringMVC中的handlerMappings对象用法

    这篇文章主要介绍了SpringMVC中的handlerMappings对象用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-26
  • C++基于递归算法解决汉诺塔问题与树的遍历功能示例

    这篇文章主要介绍了C++基于递归算法解决汉诺塔问题与树的遍历功能,简单描述了递归算法的原理,并结合实例形式分析了基于递归算法解决汉诺塔问题与数的遍历相关操作技巧,需要的朋友可以参考下...2020-04-25
  • C#遍历文件夹获取指定后缀名文件

    这篇文章主要为大家详细介绍了C#遍历文件夹获取指定后缀名文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • C#使用foreach语句遍历集合类型的方法

    这篇文章主要介绍了C#使用foreach语句遍历集合类型的方法,可实现通过foreach语句遍历集合类的功能,需要的朋友可以参考下...2020-06-25
  • jQuery遍历DOM节点操作之filter()方法详解

    这篇文章主要介绍了jQuery遍历DOM节点操作之filter()方法,结合实例形式详细分析了filter的功能及4种具体用法,需要的朋友可以参考下...2016-04-17
  • JS简单循环遍历json数组的方法

    这篇文章主要介绍了JS简单循环遍历json数组的方法,结合实例形式简单分析了JavaScript循环遍历json数组的方法,并提供了jQuery遍历json的方法,需要的朋友可以参考下...2016-04-24