EL表达式:
基本用法:${表达式} 示例:${student.name}
作用域对象:EL表达式内置四种作用域对象
pageScope:从当前页面取值
requestScope:从当前请求中获取属性值
sessionScope:从当前会话中获取属性值
applicationScope:从当前应用获取全局属性值
EL表达式输出:
${title} ${requestScope.student.name} ${emp.age+10} ${1<=3 && 2>4}(返回boolean值)
El输出参数值:
EL表达式内置param对象来简化参数的输出 ${param.参数名}
JSTL标签库:
作用域对象描述:
taglibs-standard-spec-1.2.5.jar 标签库定义包(必须)
taglibs-standard-impl-1.2.5.jar 标签库实现包(必须)
taglibs-standard-jstlel-1.2.5.jar el表达式支持包(备选)
taglibs-standard-compat-1.2.5.jar 1.0版本兼容包(备选)
安装JSTL标签库:
将Jar文件复制到工程的 /WEB-INF/lib 目录
JSTL的标签库种类 共5种
核心标签库 - core
格式化输出标签库 - fmt
SQL操作标签库 - sql
XML操作标签库 - xml
函数标签库 - functions
引用JSTL核心库
核心标签库(Core)是JSTL最重要的标签库,提供了JSTL的基础功能
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
JSTL核心标签库在taglibs-standard-impl.jar由META-INF/c.tld定义
判断标签
<c:if> - 单分支判断
<c:choose>、<c:when>、<c:otherwise> - 多分支判断
遍历集合
<c:forEach>标签用于遍历集合(Collection)中的每一个对象
<c:set var="tag" value="${0}"/>
<c:forEach var="p" items="${persons}" varStatus = "idx">
<c:if test="...">
<c:set var="tag" value="${tag+1}"/>
第${idx.index + 1}位 <br/>
姓名:${p.name} 性别: ${p.sex} 年龄:${p.age}
${tag}:可得到 第几次满足if条件
</c:if>
</c:forEach>
fmt格式化标签库
fmt格式化标签库 URI:http://java.sun.com/jsp/jstl/fmt
<fmt:formatDate value = "" pattern = "" /> 格式化日期标签
<fmt:formatNumber value = "" pattern = ""/> 格式化数字标签
格式化小数 到需要的长度
<fmt:formatNumber type="number" value="${类名.属性}" pattern="0.00" maxFractionDigits="2"/>
pattern:设置格式化标准 长度不够用0补 设置为空时则根据maxFractionDigits值进行截取后 不够的不补0
fn:substring()
fn:substring()函数返回字符串中指定开始和结束索引的子串。
${fn:substring(<string>, <beginIndex>, <endIndex>)}
其他方法:https://www.runoob.com/jsp/jsp-jstl.html