(26)一篇掌握EL表达式如何代替 jsp 页面中的表达式脚本(EL表达式的运算、EL表达式的11 个隐含对象)

您所在的位置:网站首页 jsp中使用el表达式 (26)一篇掌握EL表达式如何代替 jsp 页面中的表达式脚本(EL表达式的运算、EL表达式的11 个隐含对象)

(26)一篇掌握EL表达式如何代替 jsp 页面中的表达式脚本(EL表达式的运算、EL表达式的11 个隐含对象)

2023-08-17 06:22| 来源: 网络整理| 查看: 265

这里写目录标题 一、请求转发的使用说明:二、EL 表达式1.什么是 EL表达式,EL 表达式的作用?2.EL 表达式搜索域数据的顺序3.EL 表达式输出 Bean 的普通属性,数组属性。List 集合属性,map 集合属性4.EL表达式中的运算:5.EL 表达式的 11 个隐含对象:

一、请求转发的使用说明:

在这里插入图片描述 1.请求转发只有一次请求, 2.不能直接访问jsp页面,必须先访问Servlet程序才能将信息保存到request域中。 3.xml配置文件必须重启服务器之后才能生效。

二、EL 表达式 1.什么是 EL表达式,EL 表达式的作用?

(1)EL 表达式的全称是:Expression Language。是表达式语言。 (2)EL 表达式的作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。 因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。

表达式脚本输出key的值是: EL表达式输出key的值是:${key}

EL 表达式的格式是:${表达式} EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。

2.EL 表达式搜索域数据的顺序

EL 表达式主要是在 jsp 页面中输出数据。 主要是输出域对象中的数据。 当四个域中都有相同的 key 的数据的时候(与表达式的位置无关),EL 表达式会按照四个域的从小到大(prsa)的顺序去进行搜索,找到就输出。

${ key } 3.EL 表达式输出 Bean 的普通属性,数组属性。List 集合属性,map 集合属性

i. 需求——输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性。 Person 类:

public class Person { private String name; private String[] phones; private List cities; private Map map; public int getAge() { return 18; } }

输出代码:

p} 输出Person的name属性:${p.name}

EL表达式中不是直接找属性,而是找属性所对应的get方法,即读方法。

4.EL表达式中的运算:

(1)关系运算:

关系运算符说 明范 例结果== 或 eq等于${ 5 == 5 } 或 ${ 5 eq 5 }true!= 或 ne不等于${ 5 !=5 } 或 ${ 5 ne 5 }false< 或 lt小于${ 3 < 5 } 或 ${ 3 lt 5 }true> 或 gt大于${ 2 > 10 } 或 ${ 2 gt 10 }false= 5 } 或 ${ 3 ge 5 }false

(2)逻辑运算:

关系运算符说 明范 例结果&& 或 and与运算${ 12 == 12 && 12 < 11 } 或 ${ 12 == 12 and 12 < 11 }false或 or或运算${ 12 == 12 或12 < 11 } 或 ${ 12 == 12 or 12 < 11 }true! 或 not取反运算${ !true } 或 ${not true }false

(3)算数运算:

关系运算符说 明范 例结果+加法${ 12 + 18 }30-减法${ 18 - 8 }10*乘法${ 12 * 12 }144/ 或 div除法${ 144 / 12 } 或 ${ 144 div 12 }12% 或 mod取模${ 144 % 10 } 或 ${ 144 mod 10 }4

(4)empty 运算 empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。 以下几种情况为空: 1、值为 null 值的时候,为空 2、值为空串的时候,为空 3、值是 Object 类型数组,长度为零的时候 4、list 集合,元素个数为零 5、map 集合,元素个数为零 (5)三元运算 : 表达式 1?表达式 2:表达式 3 如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。 (6)“.”点运算 和 [] 中括号运算符 .点运算,可以输出 Bean 对象中某个属性的值。 []中括号运算,可以输出有序集合中某个元素的值。 并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符(运算符)的 key 的值。 实例:

${map.aaa} ${map["b+b+b"]} ${map['c-c-c']} 5.EL 表达式的 11 个隐含对象:

EL 个达式中 11 个隐含对象,是 EL 表达式中自己定义的,可以直接使用。 关系运算符 |说 明|范 例| 结果

变量类型作用pageContextPageContextImpl它可以获取 jsp 中的九大内置对象pageScopeMap它可以获取 pageContext 域中的数据requestScopeMap它可以获取 Request 域中的数据sessionScopeMap它可以获取 Session 域中的数据applicationScopeMap它可以获取 ServletContext 域中的数据paramMap它可以获取请求参数的值paramValuesMap它也可以获取请求参数的值,获取多个值的时候使用。headerMap它可以获取请求头的信息headerValuesMap它可以获取请求头的信息,它可以获取多个值的情况cookieMap它可以获取当前请求的 Cookie 信息initParamMap它可以获取在 web.xml 中配置的上下文参数

(1)EL 获取四个特定域中的属性 pageScope ====== pageContext 域 requestScope ====== Request 域 sessionScope ====== Session 域 applicationScope ====== ServletContext 域

当有多个域对象属性相同时,采用每个域对象所对应的EL隐含对象就可以指定输出哪个域对象,否则默认按照从小到大的顺序选择输出。

${key1} ${pageScope.key2}

(2)pageContext 对象的使用

协议:服务器 ip:服务器端口:获取工程路径:获取请求方法:获取客户端 ip 地址:获取会话的 id 编号: JSP代码如下: 1.获取请求的协议:${pageContext.request.scheme} 2.获取请求的服务器 ip 或域名:${pageContext.request.serverName} 3.获取请求的服务器端口号:${pageContext.request.serverPort} 4.获取当前工程路径:${pageContext.request.contextPath} 5.获取请求的方式(GET 或 POST):${pageContext.requesthod} 7.获取客户端的 ip 地址:${pageContext.request.remoteHost} 7.获取会话的唯一标识:${pageContext.session.id}

代码简化:

1.获取请求的协议:${req.scheme}

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3