EL表达示入门与JSTL的core标签

本文介绍EL表达式的基本语法及功能,包括获取数据、执行简单运算和调用Java类静态方法等,并详细解释JSTL标签库中的if和foreach标签用法。

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

一.EL表达示

全称:ExpressionLanguage。出现意义:替代JSP中的Java表达式的。

基本语法:${EL表达式}

主要功能:

1.获取数据

${person}:会调用pageContext.findAttribute方法从pagerequestsessionapplication范围内依次查找名称为person的对象。若没有打印空字符串,而不是null

EL表达式也可以很轻松获取JavaBean的属性,或获取数组、CollectionMap类型集合的数据,例如:

${user.address.city}

${user.list[0]}:访问有序集合某个位置的元素

${map.key} :获得map集合中指定key的值

2.执行简单的数据或逻辑运算

2.1关系运算符:==!=><>=<= <c:if test=”${user1.age>=user2.age}”…

2.2 逻辑运算符:&&||!<c:if test=”${!empty user && ! empty user2}” …

2.1Empty运算符:判断对象是否是空的。对于集合类型的,如果其中没有任何元素,即使集合对象本身存在不是null,也返回true

2.3三元表达示:${user!=null?user.name : “”}

注意:EL表达示不支持字符串链接操作、[]运算符支持索引,.运算符能搞定的,[]都能搞定呢。而有些如请求头,头名称不符合java规范的,必须使用[]

比如:${person.name}${person[“name”]}${person[‘name’]}

3.获取Web开发常用对象:EL表达式有11大隐示对象

3.1 pageContext Jsp中的PageContext内置对象一样可以获取session等。

3.2 pageScope:page范围的Map

3.3 requestScope

3.4 sessionScope: session范围的Map域,用法如:sessionScope.user表示获取session范围内的user引用的对象。

3.5 applicationScope:

3.6 header保存了请求头信息的Map对象。key:头名称 value:头值。如:${header['Accept-Encoding']}

3.7 headerValues

3.8 param:保存了请求参数的map对象,key请求参数名,值是传过来的参数值。如: ${paramValues.hobbys[1]}

3.9 paramValues:保存了请求参数的map对象。Key是请求参数名,值是数组如${paramValues.hobbys[1]}

3.10 cookie:保存了所有Cookiemap对象.keycookiename值,而value是某一个cookie对象。如:

${cookie.JSESSIONID.name}=${cookie.JSESSIONID.value}

3.11 initParam:保存了web应用中所有的初始化参数的map对象。在web.xml中所有的<context-param中配置的值。如

${initParam.encoding}

4.调用普通Java类的静态方法

开发步骤:定义EL函数。(与自定义标签的开发步骤一致的)

a、编写一个类,有一个静态方法

b、在WEB-INF目录下,建立一个扩展名为tldxml文件(找Tomcat中的例子),对那个静态方法进行描述

c、在JSP页面中通过taglib指令引入该tld文件

d、在EL中就可以调用那个静态方法了

二、标签:JSTL标签库coreifforeach,标签出现的意义在于替换掉jsp中的脚本的。

注意:JSTL标签库使用前要引用标签库。下面列出两个重要的core中的标签<c:if<c:foreach

2.1 if:用于判断,属性有以下:

Test,必须要有,返回boolean值。Test返回true,那么主体内容显示

Var:用于存放test运算结算,true还是false的结果用引用变量保存起来.

Scope:指var存放的结果保存哪个域范围。

如:<c:iftest=”${user1.age>=user2.age}” > user1的年龄比user2</c:if>

2.2 forEach,用于迭代,主要有以下属性:

Items:遍历的集合

Var:指向当前的元素

Begin:开始的索引

End:结束的索引

Step:步长,跳过多个元素

varStatus:该对象中保存有当前结果集的一些索引位置等信息如有:

getIndex()getCountisFirst()isLast()方法。

具体如下:

<c:forEachitems="${str}"begin="1"end="10"var="num"step="3"varStatus="vs">

${num}<br/>${vs.index%2==0?'red':'green'}

${vs.count}次循环

</c:forEach>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值