EL表达式和JSTL标签库

一、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>

test属性存放判断条件一般使用EL表达式来编写
scope:指定范围
var:指定test条件的变量名称
(2)<c:choose>、<c:when>、<c:otherwise>
<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:用于存放集合中元素的信息,状态:indexcountfirstlast

[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   ")}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值