EL和JSTL表达式

博客介绍了EL和JSTL出现的原因是JSP脚本存在不足。EL表达式可方便访问页面上下文及不同作用域内的对象,使页面结构清晰,但无法实现逻辑控制。JSTL是JSP标准标签库,能实现JSP页面中的逻辑控制,常与EL表达式合作,还介绍了其标准标签库内各类标签的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EL和JSTL

出现的原因是JSP脚本的不足:

         ---代码结构混乱

         ---脚本与HTML混合,容易出错

         ---代码不易于维护

EL表达式简介

什么是EL?

         ---Expression Language(表达式语言)

         ---EL定义了一系列的隐含对象和操作符,使开发人员能够很方便地访问页面的上下文,以及不同作用域内的对象。

EL的特点

         ---自动转换类型  ·EL得到某个数据时可以自动转换类型

         ---使用简单

EL表达式的作用

         ---页面结构清晰  ---代码可读性高,易于维护

EL表达式语法

         --- ${EL表达式}

EL操作符

         ---操作符”.” :获取对象的属性 例如:${news.nTitle}

         ---操作符”[]”:获取对象的属性 例如:${news[“nTitle”]} 获取集合中的对象例如:${list[0]}

EL隐式对象

         ---作用域访问对象  pageScope、requestScope、sessionScope、applicationScope

         ---参数访问对象  param、paramValues   ---JSP隐式对象  pageContext

对象名称

说明

pageScope

返回页面范围的变量名,这些名称已映射至相应的值

requestScope

返回请求范围的变量名,这些名称已映射至相应的值

sessionScope

返回会话范围的变量名,这些名称已映射至相应的值

applicationScope

返回应用范围内的变量,并将变量名映射至相应的值

param

返回客户端的请求参数的字符串值

paramValues

返回映射至客户端的请求参数的一组值

pageContext

提供对用户请求和页面信息的访问

EL表达式不足之处在于无法实现逻辑控制,而且不能循环遍历集合

JSTL简介

         Java Server Pages Standard Tag Library:JSP标准标签库 实现JSP页面中的逻辑控制

优点:--提供一组标准标签  --可用于编写各种动态JSP页面

JSTL通常会与EL表达式合作实现JSP页面的编码

名称

资源标识符

前缀(prefix)

核心标签库

http://java.sun.com/jsp/jstl/core

c

国际化/格式化标签库

http://java.sun.com/jsp/jstl/fm

fmt

XML标签库

http://java.sun.com/jsp/jstl/xml

x

数据库标签库

http://java.sun.com/jsp/jstl/sql

sql

函数标签库

http://java.sun.com/jsp/jstl/functions

sn

使用要先导入包jstl.jar和standard.jar文件,在JSP使用需要导入标签指令

         语法:%@taglib uri=” http://java.sun.com/jsp/jstl/core” prefix=”c”%

JSTL标准标签库内的标签:

         核心标签库---

通用标签

set :设置制定范围的变量值

<c:set var=”name” value=”张三” scope=”request” />

<c:set value=”value” target=”target” property=”property” />

out:计算表达式并将结果输出显示  转义特殊字符

<c:out escapeXml=”Y” value=”<a href=’http://www.baidu.com’>百度</a>”/>

<c:out value=”<a href=’http://www.baidu/com’>百度</a>”/>

remove:删除指定范围内的变量

<c:remove var=”msg” scope=”page”/>

条件标签

If:实现Java语言中if语句的功能

<c:if test=”codition” var=”name” scope=”applicationArea”></c:if>

test:判断条件表达式,返回true/false 

var:该变量用于保存返回的true/false

scope:指定var变量的作用域

choose:实现java语言中if-else语句的功能

<c:choose var=”varName” scope=”scope”>

         <c:when test=”condition”>

                   主题内容

         </c:when>

         <c:otherwise>

                   主题内容

         </c:otherwise>

</c:choose>

迭代标签

forEach:实现对集合中对象的遍历

<c:forEach items=”collection” var=”name” begin=”start” end=”end” step=”count”

 varStatus=”status”>

         循环体代码

</c:forEach>

例:遍历循环map

         <c:forEach var=”entry” items=”${map}”>

                   ${entry.key}

                   ${entry.value}

         </c:forEach>

<c:url>超链接标签  语法:<c:url value=”url”/>

<c:param>参数标签  语法:<c:param name=”name” value=”value”>

<c:import>导入标签 语法:<c:import url=”URL”/>

url:导入资源的路径

<ftm:formatDate>日期格式化标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

5t李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值