IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> EL表达式 -> 正文阅读

[JavaScript知识库]EL表达式

1.EL表达式

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

主要代替JSP页面中的表达式脚本在JSP页面中进行 “数据输出”。

EL表达式要比JSP表达式简本简洁得多。

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

<body>
<%
    request.setAttribute("key","JSP");
%>

<%
    request.getAttribute("key");
%> </br>

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



</body>

2.EL表达式的数据输出的优先顺序

【从“小到大”的“作用域” 进行数据输出】

优先级顺序为 :pageContext > request > session > application

<%

   pageContext.setAttribute("key","JSP1");
   request.setAttribute("key","JSP2");
   session.setAttribute("key","JSP3");
   application.setAttribute("key","JSP4");
%>

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

3.EL表达式输出复杂的bean对象

2.EL表达式

1.关系运算

关系运算符说明例子
==或eq等于 12 = = 12 或 {12==12}或 12==12{12 eq 12}
!=或ne不等于 11 ! = 12 或 {11!=12}或 11!=12{12 ne 12}
<或lt小于 12 < 12 或 {12<12}或 12<12{12 lt 12}
>或gt大于 12 > 12 或 {12>12}或 12>12{12 gt 12}
<=或le小于等于 12 < = 12 或 {12<= 12}或 12<=12{12 le 12}
>=或ge大于等于 12 > = 12 或 {12>=12}或 12>=12{12 ge 12}
${12==12}或${12 eq 12}</br>
${12!=12}或${12 ne 12}</br>
${12>=12}或${12 ge 12}</br>
${12<= 12}或${12 le 12}</br>
${12>12}或${12 gt 12}</br>
${12<12}或${12 lt 12}</br>

2.逻辑运算

逻辑运算符说明例子
&&或and与运算KaTeX parse error: Expected '}', got '&' at position 9: {12==12 &?& 12>11} 或{12==12 and 12>11}
||或or或运算 12 = = 1212 > 11 或 {12==1212>11}或 12==1212>11{12==12 or 12>11}
!或not取反运算 ! t r u e 或 {!true} 或 !true{not true}
${12==12 && 12>11} 或${12==12 and 12>11} </br>
${12==12||12>11} 或${12==12 or 12>11} </br>
${!true} 或${not true} </br>
</body>

3.算术运算

算术运算符说明例子
+${12+12}
-${12-12}
*${12*12}
/或div 12 / 12 或 {12/12}或 12/12{12div 12}
%或mod取模KaTeX parse error: Expected '}', got 'EOF' at end of input: {12%12}或{12 mod 12}
${12+12}
${12-12}
${12*12} 
${12/12}或${12div 12}
${12%12}或${12 mod 12}

i. empty 运算

empty运算可以判断一个数据是否为空,如果为空,则输出true,不为空输出false

? 以下几种情况为空:

1、值为null 值的时候,为空

2、值为空串的时候,为空
3、值是 object类型数组,长度为零的时候

4、list集合,元素个数为零
5、map 集合,元素个数为零

<%
//1、值为null 值的时候,为空
request.setAttribute("emptyNull",null);
//2、值为空串的时候,为空
    request.setAttribute("emptyStr","");
//3、值是 object类型数组,长度为零的时候
    request.setAttribute("emptyArr",new Object[]{});
//4、list集合,元素个数为零
    List<String> list=new ArrayList<>();
    request.setAttribute("emptyList",list);
//5、map 集合,元素个数为零
    Map<String,Object> map=new HashMap<String,Object>();
    request.setAttribute("emptyMap",map);
%>
${empty emptyNull}</br>
${empty emptyStr}</br>
${empty emptyArr}</br>
${empty emptyList}</br>
${empty emptyMap}</br>
</body>

ii.三元运算

${12==12?'易烊千玺真帅':'李承鄞真帅'}

iii.点运算和[ ]中括号运算

对于特殊符号的输出,可以前面的运用[ ]中括号

其中,中括号里面要加’ '或者" ",两者都可

正常的运用 . 小数点就行

<%
Map<String,Object> map =new HashMap<String,Object>();
map.put("a.a.a","aaavalue");
map.put("b+b+b","bbbvalue");
map.put("c","cccvalue");

request.setAttribute("map",map);

%>
${map.c} 
${map["a.a.a"]}
${map['b+b+b']}

3. EL表达式的11个隐含对象

变量类型作用
pageContextPageContextimpl获取jsp中的九大内置对象
pageScopeMap<String,Object>获取pageContext域中的数据
requestScopeMap<String,Object>获取Request域中的数据
sessionScopeMap<String,Object>获取Session域中的数据
applicationScopeMap<String,Object>获取ServletContext域中的数据
paramMap<String,String>获取请求参数的值
paramValuesMap<String,String[]>获取请求参数的值(多个值时使用)
headerMap<String,String>获取请求头的信息
headerValuesMap<String,String[]>获取请求头的信息(多个值时使用)
cookieMap<String,Cookie>获取cookie信息
initParamMap<String,String>获取在web.xml中配置的上下文参数

***i.EL中获取四个特定域的属性

pageScopepageContext域
requestScopeRequest域
sessionScopeSession域
applicationScopeServletContext域
<%

    pageContext.setAttribute("key1","pageContext1");
    pageContext.setAttribute("key2","pageContext2");
    request.setAttribute("key2","request");
    session.setAttribute("key2","session");
    application.setAttribute("key2","application");
%>
<%--这里是 pageContext.setAttribute中有key1和key2,
且下面的也包含key2 ,所以不能直接写key2,
需要通过他们的“域”来获取他们的属性--%>
${pageScope.key2}
${requestScope.key2}
${sessionScope.key2}
${applicationScope.key2}

ii.pageContext对象的使用

1.协议: pageContext.request.scheme
2.服务器ip: pageContext.request.serverName
3.服务器端口: pageContext.request.serverPort
4.获取工程路径: pageContext.request.contextPath
5.获取请求方法: pageContext.request.method
6.获取客户端ip地址: pageContext.request.remoteHost
7.获取会话的id编号: pageContext.session.id

<%--前面两行只是获取的方法,可以去掉--%>

<%=request.getMethod()%>
<%=session.getId()%>   <br>
1.协议:${pageContext.request.scheme}<br>
2.服务器ip:${pageContext.request.serverName}<br>
3.服务器端口:${pageContext.request.serverPort}<br>
4.获取工程路径:${pageContext.request.contextPath}<br>
5.获取请求方法:${pageContext.request.method}<br>
6.获取客户端ip地址:${pageContext.request.remoteHost}<br>
7.获取会话的id编号:${pageContext.session.id}<br>
<%--这里简便写法哦!--%>

<%pageContext.setAttribute("req",request);%>
1.协议:${req.scheme}<br>

iii.其他EL隐含对象的示例

输出请求参数username的值:${param.username}<br>
输出请求参数password的值:${param.password}<br>

输出请求参数username的值:${paramValues.username[0]}<br>

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 07:51:19  更:2021-11-24 07:53:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 3:30:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码