EL和JSTL表达式整理

EL表达式

1、EL简介
EL(Expression Language)它借鉴了ECMAScript和XPath的表达式语言,在早期的JSP中,为了实现动态交互作用,需要在JSP中嵌入Java代码产生了代码冗余,EL表达式解决了此问题,EL主要用于在某个作用域内获取属性值或自动判断类型转换。
2、EL语法:${EL表达式}
$和{}缺一不可,el可用.点操作符来访问对象的属性但当用属性名中包含了特殊字符如.-的情况下就不能使用点操作服了,这时用[]操作符,也可访问对象属性和数组。

3、关系操作符

关系操作符说明实例结果
==或eq等于 23 = = 5 或 {23==5}或 23==5{23eq5} “ a ” = = ” a ” 或 {“a”==”a” }或 a==a{“a”eq”a”}false,true
!=或ne不等于 23 ! = 5 或 {23!=5}或 23!=5{23 ne 5}true
<或lt小于 23 < 5 或 {23<5}或 23<5{23 lt 5}false
>或gt大于 23 > 5 或 {23>5}或 23>5{23 gt 5}true
<=或le小于等于 23 < = 5 或 {23<=5}或 23<=5{23 le 5}false
>=或ge大于等于 23 > = 5 或 {23>=5}或 23>=5{23 ge 5}true

4、逻辑操作符

逻辑操作符说明实例结果
&&或and如A为true,B为false,则${A && B}false
ll双杠或or如A为true,B为false,则${A ll B}true
!或not如A为true,则${!A}false

5、Empty操作符
前缀操作符,用于检测变量值是否为null或empty,boolean类型
6、隐式对象
所谓隐式对象就是不需要声明直接用就可以,使用途径分为作用域访问,参数访问。
作用域访问,把变量放入不同作用域中满足范围的访问需求,用el访问变量时,应制定查找范围,如不指定范围,则会按照顺序依次查找。

作用域名说明
pageScope页面作用域(page)中的属性相关联的Map类
requestScope请求作用域(request)中的属性相关联的Map类
sessionScope会话作用域(session)中的属性相关联的Map类
applicationScope应用程序作用域(application)中的属性相关联的Map类
请求参数名称说明
param根据参数名称访问单一请求值的
paramValues根据参数名称访问数组请求值的Map对象
JSP隐式对象说明
pageContext提供对页面信息和JSP内置对象的访问

JSTL标签库

JSTL简介

JSTL(Java Server Pages Standard Tag Library)JSP标准标签库,由JCP定制的一种标准规范,可以利用这些标签取代Java代码,从而提高代码的可读性,维护性。

JSTL优点

1、简化了JSP和JavaWeb应用程序的开发。
2、在服务器之间提供了接口,提高了在各服务器之间移植。
3、减少了代码的数量,提高了代码的可读和维护性。

使用JSTL

1、引入JSTL的jar包和标签描述符.tld
2、在MyEclipse中已继承了JSTL在创建WEB项目时,在新建窗口中的J2EESpecif…选项组中选择JSTL的版本
3、在JSP页面上方使用taglib指令导入标签库
<%@ taglib prefix = “c” uri=“http://java.sun.com/jsp/jstl/core” %>
taglib指令通过uri属性引入某个标签库的配置文件,JSP通过prefix指定前缀即可访问标签库的标签功能。

JSTL核心标签库

1、通用标签库

<c:set>标签标签说明
<c:set>设置作用域变量的值或属性值
属性名属性说明
var设置变量名
value变量的值
scope作用域范围
target操作javaBean对象的属性名,用EL表示
property对应JavaBean对象的属性值
<c:out>标签标签说明
<c:out>将表达式结果输出页面显示
属性名属性说明
default指定默认值
value输出表达式的运算结果,通过EL获取
escapeXml是否转换特殊字符,true自动转换
<c:remove>标签标签说明
<c:remove>删除指定作用域内的变量
属性名属性说明
var指定删除的变量名
scope删除变量的作用域范围

2、条件标签库

<c:if>标签标签说明
<c:if>条件判断,类似Java中的if判断,没有else
属性名属性说明
test写判断条件,可用EL表达式
var定义变量存放结果,可省略
scope指定变量的作用域范围,可省略

<c:choose>,<c:when>,<c:otherwise>标签
说明
<c:choose>是父标签,只能包含这两个标签
<c:when>必须有父标签,必须在的<c:otherwise>标签之前,可有多个<c:when>
<c:otherwise>必须有父标签,必须在<c:choose>标签中最后嵌套的标签
运行时,判断<c:when>标签的条件是否为true,为true的<c:when>标签被JSP容器执行,条件不满足则执行<c:otherwise>标签,此标签类似java中的if-else但是此标签编写麻烦不常用。

// 语法
<c:choose var=”varName” scope=”scope”>
	<c:when test=”con”>
		主体内容
	</c:when>
		<c:otherwise>
			主体内容
		</c:otherwise>
<c:choose>

3、迭代标签库

<c:forEach>双标签标签说明
<c:forEach>用于遍历集合对象的成员,是一个双标签
属性名属性说明
var迭代参数名,自定义名称
items迭代的集合对象,可用EL从作用域中获取
varStatus迭代变量名,表示迭代的状态,分别有两个属性:count:索引从1开始,index:从0开始
begin迭代开始的位置,默认0,可省略
end迭代结束的位置,可省略
step循环步长,默认1,可省略
// 语法
<c:forEach var=”变量名” items=集合名” varStatus=”状态名”
	begin=”开始位置” end=”结束位置” step=”循环步长” >
		循环主体内容
</c:forEach>

4、JSTL其它标签
这些标签不常用,了解即可

标签名标签说明
<c:catch>处理异常,将错误信息存储起来
<c:import>检索一个绝对或相对的URL,将内容显示给页面
<c:forTokens>根据指定的分隔符来分割内容并迭代输出
<c:param>给包含或重定向的页面传递参数
<c:redirect>重定向一个新的URL
<c:url>用可选的查询参数创造一个URL

5、JSTL格式化标签

标签名标签说明
fmt:formatNumber指定的格式或精度格式化数字
fmt:parseNumber解析一个代表数字,货币或百分比
fmt:formatDate使用指定的风格或模式格式化日期
fmt:parseDate解析一个代表日期或时间的字符串
fmt:bundle绑定资源
fmt:setLocale指定地区
fmt:setBundle绑定资源
fmt:timeZone指定时区
fmt:setTimeZone复制一个时区对象至指定的作用域
fmt:message显示资源配置文件信息
fmt:requestEncoding设置request的字符编码

开发时,EL表达式和JSTL标签结合使用,会在很大程度上减少JSP中嵌入的java代码,有利于程序的维护和扩展。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值