JSTL一般要配合EL表达式一起使用,
**
JSTL(JSP Standard Tag Library) JSP标准标签库,则必须引用jstl.jar和 standard.jar两个包。且在jsp页面中引入**
1、标签库分类
2.页面中引入
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>//核心标签库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>//格式化库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/xml” prefix=“x”%>//xml 库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/sql” prefix=“sql”%>//sql标签库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/functions” prefix=“fn”%>//函数库
a、核心库
Ⅰ、迭代标签
<c:forEach var=”name” items=”Collection” varStatus=”StatusName” begin=”begin” end=”end” step=”step”>
本体内容
</c:forEach>
var设定变量名用于存储从集合中取出元素。
items指定要遍历的集合。
varStatus设定变量名,该变量用于存放集合中元素的信息(可选)。
begin、end用于指定遍历的起始位置和终止位置(可选)。
step指定循环的步长(可选)。
遍历map举例
<c:forEach var="nickAndfxname" items="item.nickAndfxnames" >
${nickAndfxname.key}/${nickAndfxname.value}  
</c:forEach>
**Ⅱ、流程控制标签**
**<c:if>标签**
举例:
//写法一
<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
//写法二
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
标签体内容
</c:if>
**<c:choose>、<c:when>和<c:otherwise>标签,类似 if - else if - else**
举例:
<c:choose>
<c:when test="条件1">
//业务逻辑1
</c:when>
<c:when test="条件2">
//业务逻辑2
</c:when>
<c:when test="条件n">
//业务逻辑n
</c:when>
<c:otherwise>
//业务逻辑
</c:otherwise>
</c:choose>
b、xml库
**通用标签**
**<c:out> 用来显示数据对象(字符串、表达式)的内容或结果,**
举例:<c:out value="字符串">
**<c:set> 用于将变量存取于 JSP 范围中或 JavaBean 属性中**
举例:
<body>
<c:set value="张三" var="name1" scope="session"></c:set>
<c:set var="name2" scope="session">李四</c:set>
<c:set value="赵五" target="${person}" property="name"></c:set>
<c:set target="${person}" property="age">19</c:set>
<li>从session中得到的值:${sessionScope.name1}</li>
<li>从session中得到的值:${sessionScope.name2}</li>
<li>从Bean中获取对象person的name值:<c:out value="${person.name}"></c:out></li>
<li>从Bean中获取对象person的age值:<c:out value="${person.age}"></c:out></li>
</body>
**<c:remove> 主要用来从指定的 jsp 范围内移除指定的变量。**
举例:
<c:remove var="变量名" [scope="page|request|session|application"]></c:remove>
**<c:catch> 用来处理 JSP 页面中产生的异常,并存储异常信息**
举例:
<c:catch var="name1">
容易产生异常的代码
</c:catch>
如果抛异常,则异常信息保存在变量 name1 中。
**EL(Expression Language)表达式语言 需要引入任何jar包,只要jsp/servlet容器实现了J2EE1.4/servlet2.4、JSP2.0规范就可以 **
1、语法结构
${expression}
2、[]与.运算符
EL 提供.和[]两种运算符来存取数据
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定 要使用 [] 例如:
u
s
e
r
.
M
y
−
N
a
m
e
应
当
改
为
{user.My-Name}应当改为
user.My−Name应当改为{user[“My-Name”] }
一般写法${sessionScope.user[data]}中data 是一个变量
3、EL隐含对象
与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope, applicationScope,cookie;
举例:
${sessionScope.username}
${cookie.userCountry}
4、条件标签
a.算术运算符有五个:+、-、或KaTeX parse error: Expected 'EOF', got '&' at position 77: … c.逻辑运算符有三个:&̲&或and、||或or、!或n…{empty param.name}、
A
?
B
:
C
、
{A?B:C}、
A?B:C、{A(B+C)}