JSTL核心标签库


顾名思义,核心标签库在JSTL中占有什么重要的地位。JSTL核心标签库按照功能的不同又分为通用标签库,条件标签库,迭代标签库等,如下

在这里插入图片描述

通用标签库

通用标签用于在JSP页面内设置,显示和删除变量,它包含三个标签:<c:set>,<c:out>和<c:remove>

<c:set>标签

<c:set>标签用于设置作用域变量的值或者作用域变量的属性值,其语法格式分成如下两种。
(1)将value值存储到范围为scope的变量variable中。
语法: <c:set var="variable" value="value" scope="scope">
var 属性的值是设置的变量名。
value 属性的值是赋予变量的值。
scope属性对应的是变量的作用域,可选值有page,request,session和application。
例如,在请求范围内将变量currentIndex的值为8,用<c:set>标签可以写为

   <c:set var="currentindex" value="8" scope="request"/>

(2)将value值设置到对象的属性中
<c:set value=“value” target=“target” property=“property”/>
target 属性时操作的JavaBean对象,可以使用EL表达式来表示。
property属性对用JavaBean对象的属性名。
value属性时赋予JavaBean对象属性的值。

<c:out>标签

<c:out>标签用于将计算机的表达式结果输出显示,类似于JSP中的<%=%>。但是功能更加的强大,而且代码也更加的简洁,方便页面维护。其语法格式分为指定默认值和不指定默认值两种形式。
(1)不指定默认值
语法<c:out value="value"/>
value属性指需要输出的表达式的运算结果,可以通过EL表达式来获取。
(2)指定默认值
语法: <c:out value="value" default="default" />
default属性是value属性的值为空时输出的默认值。另外,<c:out>标签还有一个escapeXml属性,表示十分转换特殊字符,用于指定在使用<c:out>标签输出诸如<.>.’.".& 之类在HTML和XMl中具有特殊意义的字符时时否应该进行转义。escapeXML属性设置为true,则会自动进行转义处理,这也是默认值。代码如下。

<p>${"<a href="http://www.baidu.com'>百度</a>"}</p>
<p><c:out escapeXml="false" value="<a href='http://www.baidu.com'>百度</a>"/></p>
<p><c:out value="<a href="http://www.baidu.com'>百度</a>"/> </p>

结果

百度
百度
<a href="http://www.baidu.com’>百度

当escapeXML属性设置为false,与直接使用EL表达式的效果是相同的。

<c:remove>标签

与<c:set>标签的作用是相反的,<c:remove>用于移除指定作用域内的指定变量。
语法: <c:remove var=“variable” scope=“scope”>
var 属性是指带移除的变量的名称。
scope 属性是指移除的变量所在的范围,可选项有page,request,session,application,如果没有指定,那默认是page。

条件标签库

JSTL的条件标签包括<c:if>,<c:choose>,<c:when>和<c:otherwise>标签。

<c:if>

<c:if>用于实现java语言中if语句的功能。
语法:<c:if test="condition" var="varName" scope="scope"> 主体内容 </c:if>
test 属性是用来判断条件,当condition(可以用EL表达式表示)的结果为true时,会执行主体内容,如果为false则不会执行。
var 属性定义变量,该变量存放判断的结果,该属性可以省略。
scope 属性是指var定义变量的存储范围,可选值有page,request,session和application,该属性可以省略。

<c:choose>

<c:choose>,<c:when>和<c:otherwise>一起实现互斥条件的执行,类似于java语言的if-esle if-else语句
语法:

<c:choose var="varName" scope="scope">
	<c:when test="condition">
		主体内容
	</c:when>
	<c:otherwise>
		主体内容
	</c:otherwise>
</c:choose>

<c:choose> 是作为<c:when>和<c:otherwise>的父标签使用的,除了空白字符外,<c:choose>的标签体只能包含这两个标签。
<c:when>标签必须有一个直接的父标签<c:choose>标签,而且必须在同一个父标签下的<c:otherwise>标签之前出现。在同一父标签<c:choose>中,可以有多个<c:when>标签。
<c:otherwise>标签必须有一个直接的父标签<c:choose>,而且必须是<c:choose>标签中最后一个嵌套的标签。
在运行时,判断<c:when>标签的测试条件是否为true,第一个测试条件为true的<c:when>标签体被JSP容器执行。如果没有满足条件的<c:when>标签,那么<c:otherwise>的标签体将被执行。

迭代标签

在JSP开发中,经常需要对集合对象进行遍历操作。例如列表显示查询结果等。以为通常使用Java代码实现集合对象(如List,Iterator)的遍历。现在通过JSTL的<c:forEach>标签能在很大程度上简化迭代操作。
<c:forEach>标签有两种语法格式:一种用于遍历集合对象的成员,另一种用于是语句循环执行指定的次数。

遍历集合对象

语法如下

<c:forEach var="varName" items="collectionName" varStatus="varStatusName" begin="beginIndex" end="endIndex" step="step">
	主体内容
</c:foreach>

var 属性时对当前成员的引用,即如果当前循环到第一个成员,var就是第一个成员,如果当前循环到第二个成员,它就引用第二个成员,以此类推。
items 指被迭代的集合对象
varStatus 属性用于存放var引用的成员的相关信息,如索引等。
begin属性表示开始位置,默认为0,该属性可以省略。
end属性表示结束位置,该属性可以省略。
step表示循环的步长,默认为1,可以省略。

指定语句的执行次数

语法:

<c:forEach var="varName" varStatus="vatStatusName" begin="beginIndex" end="endIndex"  step="step">
	主体内容
</c:forEach>

var属性时对当前成员的引用。
varStatus属性用于存放var引用的成员的相关信息,索引等。
begin属性表示开始位置,默认为0,该属性可以省略。
end属性表示结束的位置,默认可以省略。
step属性表示循环的步长,默认为1,该属性可以省略。

格式2余格式1的区别是,格式2不是对一个集合对象遍历,而是根据指定的begin属性,end属性以及step属性执行主体内容固定的次数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值