JSTL_基本知识
在jsp中,我们难免要进行一些逻辑运算,为了避免写出难以维护的Java代码,我们使用jstl标签库,它能够结合el表达式,使得jsp文档令人编写阅读轻松。
一、准备工作
1、导入jar包
2、引用所需的标签库
在jsp文件中使用taglib标签引入所需库。
//引入核心库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
二、常用标签
1、基本标签
1.1、输出
把数据输出在页面中。
//value可以为常量,也可以是el表达式,如果值为空,则输出默认值 <c:out value="值" default="默认值"></c:out>
1.2、存入数据
把数据以键值对的形式,存入指定数据对象中,实际上是调用了setAttribute方法。(不指定scope则默认存入page对象中)
//var:键 ;value:值 ;scope:指定对象(可选) <c:set var="name" value="lurenjia" scope="session"></c:set>
1.3、删除数据
通过键名删除数据,可以指定数据对象
//不指定scope时,删除所有作用域中键名为name的数据 <c:remove var="name" scope="request"></c:remove>
2、逻辑标签
2.1选择标签
如果满足条件,则执行。
<c:set var="name" value="" scope="request"></c:set> //test中必须为el表达式,且值为Boolean <c:if test="${empty param.name}"> <b>可是这和我是一个冷酷的复读机又有什么关系呢?</b> </c:if>
2.2多选择标签
如果满足某个条件,则执行某个代码块。
<c:set var="t_name" value="lurenjia" scope="request"></c:set> //根据t_name的值,执行相关的代码块 <c:choose> <c:when test="${t_name eq 'lurenjia'}"> <b>没错,他是叫做路人甲</b> </c:when> <c:when test="${t_name eq '老六'}"> <b>没错,他叫做老六</b> </c:when> <c:otherwise> <b>不不不,它没有名字</b> </c:otherwise> </c:choose>
3、循环标签
3.1 常量循环:循环次数固定。
<!-- begin:开始索引 end:结束索引 step:步长 varStatus:记录了每次循环的数据,在作用域中,通过el表达式取出,属性: index获取当前索引 count获取当前循环次数 first获取是否第一次循环 last获取是否最后一次循环 --> <c:forEach begin="1" end="4" step="2" varStatus="vs"> 循环体 </c:forEach>
3.2动态循环:循环次数根据容器大小来确定。
<!-- items:要遍历的对象 var:每次循环中的对象 1、普通数组、list集合,${v} 2、map集合: ${v.key}获取键 ${v.value}获取值 --> <c:forEach items="name" var="v"> 循环体 </c:forEach>