一、EL表达式
1、定义:为了计算和输出存储在标志位置的Java对象的值,JSP2.0引入了一种简洁的语言。
2、功能:
(1)与<jsp:getProperty />类似
(2)简化<jsp:getProperty />
(3)精确的访问存储对象
(4)Bean属性的简略记法
(5)空值取代错误消息
3、基本格式:${ 表达式 }
表达式的值为null,则在页面中显示为一个空字符串,而不是null
4、EL运算符
加减乘除四则运算符
符号 | 说明 |
+ | 加 |
- | 减 |
* | 乘 |
/或div | 除 |
%或mod | 求余 |
比较运算符
符号 | 说明 |
==或eq | 相等 |
!=或lt | 不相等 |
<或lt | 小于 |
>或gt | 大于 |
<=或le | 小于等于 |
>=或ge | 大于等于 |
逻辑运算符
符号 | 说明 |
&&或and | 逻辑与 |
||或or | 逻辑或 |
!或not | 取反 |
特殊运算符
符号 | 说明 |
empty | 是否为nullhuo空字符串 |
?: | 三元运算符 |
5、EL与输入有关的隐含对象
语法:${ param.参数名 } 或${ paramValuea.参数名 }
6、引用隐式对象
(1)pageScope:只限于当前页面
(2)requestScope:限于一次请求
(3)sessionScope:一次会话
(4)applicationScope:从服务器一开始执行服务,到服务器关闭为止
二、JSTL标签库
1、定义:JSP标准标签库
2、优点:
(1)提供一组标准标签
(2)可用于编写各种动态JSP页面
(3)用于访问数据库
3、JSTL使用
在页面添加 taglib 指令
<%@taglib url="http://java.sun.com/jsp/jstl/core" prefix="c"%>
4、C标签
通用标签
(1)set:设置变量
语法:<c:set value="值1" var="变量名1" scope="page/request/session/application"></c:set>
(2)out:显示变量
语法:<c:out value="要显示的数据对象" escapeXML="true/false" default="默认值" />
(3)remover:删除变量
语法:<c: remover var="变量名1" scope="page/request/session/application"></c:remover>
(4)catch:定义变量存储异常信息
语法:<c:catch var="变量名">容易产生异常的代码</c:catch>
流程控制标签
(1)<c:if>条件标签
语法:<c:if test="条件" var="name" scope="page|request|session|application"></c:if>
<c:choose>
<c:when test=“条件1”>
表达式//业务逻辑1
</c:when>
<c:when test=“条件2”>
表达式//业务逻辑2
</c:when>
……
<c:otherwise>
表达式//业务逻辑n
</c:otherwise>
</c:choose>
迭代标签
<c:forEach var= "varName" items= "collection"
[varStatus=“statusName”]
[begin=“begin end=“end” step=“step”]>
</c:forEach>
var:指定集合内数据的变量名称
items:指定要遍历的集合对象
varStatus:用于存放集合中元素的信息,状态:(index、count、first、last)
[begin=“begin end=“end” step=“step”]:用于指定遍历的起始位置、终止位置和循环的步长
5、fmt标签
(1)time
<fmt:formatDate value="${sessionScope.now}" type="time"/>
(2)date
<fmt:formatDate value="${sessionScope.now}" type="date"/>
(3)both
<fmt:formatDate value="${sessionScope.now}" type="both"/>
<fmt:formatDate value="${sessionScope.now}" type="both" dateStyle="short" timeStyle="short"/>
<fmt:formatDate value="${sessionScope.now}" type="both" dateStyle="medium" timeStyle="medium"/>
<fmt:formatDate value="${sessionScope.now}" type="both" dateStyle="long" timeStyle="long"/>
(4)pattern
<fmt:formatDate value="${sessionScope.now}" pattern="yyyy-MM-dd HH:mm:ss SSS"/>
6、fn标签
(1)判断一个字符串中是否包含另一个字符串:${fn:contains("strs","s")}
(2)判断一个字符串中是否包含另一个字符串 忽略大小写:${fn:containsIgnoreCase("strs","S")}
(3)判断一个字符串是否以某一个字符串结束:${fn:endsWith("string","g" )}
(4) 判断一个字符串是否以某一个字符串开头:${fn:startsWith("string","s" )}
(5) 判断某个字符在一个字符串中的位置(第一次出现的位置): ${fn:indexOf("apache","a")}
(6)将数组用字符串拼接 :${fn:join(sessionScope.strs,";")}
(7)获取字符串长度:${fn:length("字符串长度")}
(8)字符串替换: ${fn:replace("catalina","a","测试")}
(9)字符串通过字符拆分为数组
<c:forEach items="${fn:split(sessionScope.str,';')}" var="str">
${str}
</c:forEach>
(10)字符串截取: ${fn:substring("测试字符串截取",0 ,3)}
(11)将字符串转换为大写: ${fn:toUpperCase("ceshi")}
(12)将字符串转换为小写: ${fn:toLowerCase("CESHI")}
(13)去除字符串前后空格:${fn:trim(" ce shi ")}