Javaweb 7EL与JSTL

目录

EL与JSTL

为什么要使用EL表达式

EL语法

EL运算符

EL功能

EL访问作用域

JSTL介绍

JSTL标签分类

c:out/标签

设置变量和对象属性

c:forEach/标签

c:if/标签

使用JSTL构建URL

fmt:formatDate/标签


EL与JSTL

为什么要使用EL表达式

JSP脚本有哪些不足

代码结构混乱

脚本与HTML混合,容易出错

代码不易于维护

使用EL表达式来优化程序代码,增加程序可读性

<table >
        <c:forEach var="news" items="${list}">
               <tr><td><c:out value="${news.title}" /></td></tr>
        </c:forEach>
</table>

EL语法

EL表达式(Expression Language)

${EL 表达式} 例如:${username}

EL操作符

操作符“.”

获取对象的属性,例如:${news.title}

操作符“[]”

获取对象的属性,例如:${news["title"]}

获取集合中的对象,例如:${newsList[0]}

EL运算符

为了避免JSP混淆运算符和页面关键字,很多运算符都有替代写法

关系运算符范例结果
== eq${5 == 5}或${5eq 5}true
!= ne${5 != 5}或${5 ne 5}false
< lt${3 < 5}或${3 lt5}true
> gt${3 > 5}或{3 gt 5}false
<= le${3 <= 5}或${3 le 5}true
>= ge${3 >= 5}或${3 ge 5}false
运算符说明
( )改变执行的优先级,例如${3(4+5)}
+,-,*,/,%算术运算符,例如${3+2}
==,!=,>,>=,<,<=关系运算符,例如${a==b}或${a eq b}
&&,||,!逻辑运算符,例如${true&&false}
?:条件运算符,例如${a>b?1:2}
empty用于检测变量名是否为空,是否等于NULL,例如${empty name}

EL功能

取得JavaBean对象的属性

${news.title}

取得数组、List、Map类型对象的元素

${list[0]}

使用各类运算符对原始数据进行简单处理

${totalRecordCount/pageSize}

屏蔽一些常见的异常

${username}

能实现简单的自动类型转换

${news}相当于(News)request.getAttribute("news")

EL访问作用域

request.setAttribute("news", news);

两种方式取数据:

使用Java小脚本:request.getAttribute("news");

使用EL表达式: ${ news } 或者 ${ requestScope.news }

作用域Java代码取值EL取值
请求作用域request.getAttribute("news");${ requestScope.news }
会话作用域session.getAttribute("username");${ sessionScope.username }
程序作用域application.getAttribute("count");${ applicationScope.count }
页面作用域pageContext.getAttribute("userNum");${ pageScope.userNum }

JSTL介绍

JSTL(JavaServerPages Standard Tag Library)

JSP标准标签库

实现JSP页面中的逻辑控制

JSTL使用步骤

下载jstl.jar和standard.jar包

Index of /dist/jakarta/taglibs/standard/binaries

将这两个包复制到WEB-INF\lib目录

在JSP页面中添加指令

<%@ taglib uri="Oracle Java Technologies | Oracle" prefix="c" %>

JSTL标签分类

标签库名称资源标示符(uri)前缀(prefix)
核心标签库Oracle Java Technologies | Oraclec
国际化/格式化标签库Oracle Java Technologies | Oraclefmt
XML标签库Oracle Java Technologies | Oraclex
数据库标签库Oracle Java Technologies | Oraclesql
函数标签库Oracle Java Technologies | Oraclefn

核心标签库

<%@ taglib uri="Oracle Java Technologies | Oracle" prefix="c" %>

国际化/格式化标签库

<%@ taglib uri="Oracle Java Technologies | Oracle" prefix="fmt" %>

c:out/标签

<c:out value="value" default="default" escapeXml="true|false" />

需要输出显示的表达式value="value"

默认输出显示的值 default="default"

是否对输出的内容进行转义escapeXml="true|false"

设置变量和对象属性

设置变量

<c:set var="name" value= "value" scope="" />

表示变量名称var="name"

表示变量的值value= "value"

存在的作用域scope=""

设置对象属性

<c:set value= "value" target="target" property="propertyName" />

表示属性的值value= "value"

表示对象target="target"

表示对象的属性名称property="propertyName"

c:forEach/标签

c:forEach/迭代标签

实现对集合的遍历

<c:forEach var="varName" items="items" varStatus="varStatus">

……

</c:forEach>

集合中元素的名称 var="varName"

集合对象 items="items"

当前循环的状态信息,例如循环的索引号varStatus="varStatus"

c:if/标签

c:if/条件标签

实现条件的判断

<c:if test="condition" var="varName" scope="scope">

……

</c:if>

判断的结果 var="varName"

判断结果存放的作用域scope="scope"

使用JSTL构建URL

c:url/超链接标签

<c:url value="url" />

c:param/参数标签

<c:param name="name" value="value"/>

c:import/导入标签

<c:import url="URL" />

fmt:formatDate/标签

fmt:formatDate/格式化标签

实现格式化的日期和时间显示

<fmt:formatDate value="date" pattern="yyyy-MM-dd HH:mm:ss"/>

时间对象 value="date"

显示格式 pattern="yyyy-MM-dd HH:mm:ss"

标签名称作用
<c:out />输出文本内容到out对象,常用于显示特殊字符,显示默认值
c:set/在作用域中设置变量或对象属性的值
c:remove/在作用域中移除变量的值
c:if/实现条件判断结构
c:forEach/实现循环结构
c:url/构造url地址
c:param/在url后附加参数
c:import/在页面中嵌入另一个资源内容
fmt:formatDate/格式化时间
fmt:formatNumber/格式化数字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值