JSTL标签

1.JSTL

JavaServer Pages Standard Tag Library,即JSP标准标签库。它包含了在开发JSP页面时常用到的一组标准标签,如通用标签,条件判断标签和迭代标签等。

2.为什么使用jstl?

EL表达式可以用来取值,但无法实现逻辑控制,循环遍历等。若要在jsp页面实现这样的需求,可
以使用jstl来解决。

3.如何使用JSTL?

(1).引入依赖

<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>

(2).在jsp页面使用taglib指令导入标签库描述文件,如引入核心标签库

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"

4.JSTL核心标签库

通用标签库

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

(1).<c:set>标签

 用于设置作用域变量的值或者作用域变量的属性值,其语法格式分为以下两种:

(1).将value值存储到范围为scope的变量variable中。语法:

<c:set var="variable" value="value" scope="scope"/>
  •  var属性的值是设置的变量名
  • value属性的值是赋予变量的值
  • scope属性对应的是变量的作用域,可选值有page、request、session和application

(2).将value值设置到对象的属性中。语法:

<c:set value="value" target="target" property="property"/>
  •  target属性是操作的JavaBean对象,可以使用EL表达式来表示。
  • 补充:JavaBean知识
  • JavaBean 是特殊的 Java 类,使用 Java 语言书写,并且遵守 JavaBean API 规范。
  • 接下来给出的是 JavaBean 与其它 Java 类相比而言独一无二的特征:
  • 1、所有属性为private
  • 2、提供默认构造方法
  • 3、提供getter和setter
  • 4、实现serializable接口
  • value属性是赋予JavaBean对象的属性的值
  • property属性对应JavaBean对象的属性名

(2).<c:out>标签 

用于将计算的表达式结果输出显示,类似于jsp中的<%=%>,但功能更强大,代码更简洁,方便页
面维护。其语法格式分为指定默认值和不指定默认值两种形式。

(1).不指定默认值

<c:out value="value"/>

(2).指定默认值

<c:out value="value" default="default"/>

(3).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>
<c:out value="<a href='http://www.baidu.com'>百度</a>" />

(3).<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>

(1).<c:if>

用于实现Java语言中的if语句的功能

<c:if test="condition" var="varName" scope="scope">
    主体内容
</c:if>
  • test:判断条件,表达式返回true/false。当condition(可以用EL表达式表示)的结果为true时,执行主体,如果为false不会执行主体
  • var:定义变量,该变量用于存放判断的结果,可省略
  • scope:是指var定义的变量所在的范围,可选项有page、request、session、application,可省略

 (2).<c:choose>

choose:实现if - else if - else语句的功能

<c:choose>
<c:when test="condition1">
内容1
</c:when>
<c:when test="condition2">
内容2
</c:when>
……
<c:otherwise>
内容n
</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的开发中,经常需要对集合对象进行迭代操作,通过<c:forEach>标签,能在很大程度上简化迭代操作。

(1).遍历集合对象的成员

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

以上语法格式类比于java的foreach循环

  • step是步长,默认为1,可以省略。类似于for循环中的i++;
  • items:被迭代的集合对象
  • var:每次迭代被拿出来的对象
  • begin:遍历开始索引
  • end:遍历结束索引
  • varStatus:存放 “每次迭代被拿出来的对象” 的相关信息,如索引等

(2). 指定语句的执行次数 

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

以上语法格式类比于java中的for循环

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值