好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

JSTL条件行为和遍历行为

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

1、if标签

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

两种形式:

1) 没有body content

?

1

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

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

2)

?

1

2

3

< 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

?

1

2

3

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

body content

</ c:forEach >

2) 用于遍历对象集合

?

1

2

3

< 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指定的分隔符,将元素分开

语法如下:

?

1

2

3

< 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+ 字符串 一组分隔符

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

原文链接:https://blog.csdn.net/Pruett/article/details/76974409

查看更多关于SpringMVC学习之JSTL条件行为和遍历行为详解的详细内容...

  阅读:21次