栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

EL表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EL表达式

文章目录


Tips

${表达式}

  1. Expression Language,表达式语言

  2. 作用:代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出,相对而言更简洁

  3. EL 表达式在输出 null 值的时候,输出空串

    jsp 表达式脚本输出 null 值的时候,输出 null 字符串。

  4. jsp 中四大域对象都存储同名key变量时,按照四个域的从小到大的顺序去进行搜索,找到就输出,除非特殊场景,否则只用request

  5. EL 表达式获取某值的时候,不是找属性名,而是找该属性对应的get方法,就算没有 该属性,有get方法也可以

    获取表达式结果/备注
    对象的属性${p.name}
    数组${p.phones}数组的地址
    数组的某个属性值${p.phones[2]}
    List 集合${p.cities}[元素1,元素2,元素3,元素4]
    List 集合中个别元素值${p.cities[2]}
    Map 集合${p.map}{key1=value1,key2=value2,key3=value3}
    Map 集合中某个 key 的值${p.map.key}
运算 关系运算
关系运算符说 明范 例结果
== 或 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
<= 或 le小于等于 ${ 5 <= 12 } 或 ${ 5 le 12 }true
>= 或 ge大于等于 ${ 3 >= 5 } 或 ${ 3 ge 5 }false
逻辑运算
逻辑运算符说 明范 例结果
&& 或 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
算数运算
算数运算符说 明范 例结果
+加法${ 12 + 18 }30
-减法${ 18 - 8 }10
*乘法${ 12 * 12 }144
/或 div 除法${ 144 / 12 } 或 ${ 144 div 12 }12
%或 mod 取模${ 144 % 10 } 或 ${ 144 mod 10 }4
empty 运算

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

以下几种情况为空:

  1. 值为 null 值的时候,为空
  2. 值为空串的时候,为空
  3. 值是 Object 类型数组,长度为零的时候
  4. list 集合,元素个数为零
  5. map 集合,元素个数为零
三元运算

同java三元运算

.运算 和 []运算符
  1. .点运算:可以输出 Bean 对象中某个属性的值

  2. []中括号运算,可以输出有序集合中某个元素的值,单双引号都行

    并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符的 key 的值。

request.setAttribute("abc.def", "zhangsan");
//用.无法取值
//${requestScope.abc.def}
${requestScope["abc.def"]}

<%
	Map map = new HashMap();
	map.put("a.a.a", "aaaValue");
	map.put("b+b+b", "bbbValue");
	map.put("c-c-c", "cccValue");
	request.setAttribute("map", map);
%>
	${ map['a.a.a'] } 
${ map["b+b+b"] }
${ map['c-c-c'] }
隐含对象 11个隐含对象
变量类型作用
pageContextPageContextImpl它可以获取 jsp 中的九大内置对象
pageScopeMap它可以获取 pageContext 域中的数据
requestScopeMap它可以获取 Request 域中的数据
sessionScopeMap它可以获取 Session 域中的数据
applicationScopeMap它可以获取 ServletContext 域中的数据
paramMap它可以获取请求参数的值
paramValuesMap它也可以获取请求参数的值,获取多个值的时候使用。
headerMap它可以获取请求头的信息
headerValuesMap它可以获取请求头的信息,它可以获取多个值的情况
cookieMap它可以获取当前请求的 Cookie 信息
initParamMap它可以获取在 web.xml 中配置的上下文参数
pageContext

获取 jsp 中的九大内置对象

可以直接pageContext.对象.方法,也可以 pageContext.setAttribute为对象起名后直接用

<% pageContext.setAttribute("req", request); %> 
<%=request.getScheme() %> 
 1.协议: ${ req.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 }
获取四个特定域中的属性
EL表达式
pageScopepageContext 域
requestScopeRequest 域
sessionScopeSession 域
applicationScopeServletContext 域
<% 
	pageContext.setAttribute("key", "pageContext"); 		
	request.setAttribute("key", "request"); 
	session.setAttribute("key", "session"); 
	application.setAttribute("key", "application"); 
%> 
	${pageScope.key}
	${requestScope.key}
	${sessionScope.key}
	${applicationScope.key}
param 与 paramValues
输出请求参数 username 的值:${ param.username } 
输出请求参数 password 的值:${ param.password } 
输出请求参数 username 的值:${ paramValues.username[0] } 
输出请求参数 hobby 的值:${ paramValues.hobby[0] } 
输出请求参数 hobby 的值:${ paramValues.hobby[1] } 
header 与 headerValues
输出请求头【User-Agent】的值:${ header['User-Agent'] } 
输出请求头【Connection】的值:${ header.Connection }
输出请求头【User-Agent】的值:${ headerValues['User-Agent'][0] }
cookie
获取 Cookie 的名称:${ cookie.JSESSIONID.name } 
获取 Cookie 的值:${ cookie.JSESSIONID.value } 
initParam

获取web.xml 中的配置:


	username
	root



	url
	jdbc:mysql:///test

输出 Context-param username 的值:${ initParam.username } 
输出 Context-param url 的值:${ initParam.url }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号