关于EL表达式

它只是JSP中的表达式,不是一种开发语言
EL表达式不支持字符串连接操作。
基本语法:${ }


1.获取数据
  EL表达式只能获取四大域中的数据
  EL表达式获取的对象如果是null,页面不会显示数据。因此,EL表达式中永远不会出现空指针异常
  p.name:调用域中名称为p对象的getName方法。点运算符是用于获取属性的取值的。
  .运算符:
  []运算符:.运算符能做的,[]也能做。[]能做的,.不一定能做。
              比如${p.name}===${p["p"]}==${p['p']}
              []运算符优秀在可以取不符合java命名规范的东东。
使用EL表达式获取数据语法:”${标识符}”
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session和application四个域中查找相应的对象,找到则返回相应对象,找不到则返回""(注意,不是null,而是空字符串)。


2.获取数组中指定的元素
String[] str = {"a", "b", "c"};
pageContext.setAttribute("str", str);
${str[1]} // 获取str中的"b"元素


3.获取List中指定的元素
List list = new ArrayList();
list.add("aa");
list.add("bb");
list.add("cc");
pageContext.setAttribute("list", list);
 ${list[2]} // 获取list中的"bb"


4.获取Map中指定的元素
Map map = new LinkedHashMap();
map.put("a", "aaa");
map.put("b", "bbb");
map.put("c", "ccc");
pageContext.setAttribute("map", map);
${map.b} // 获取map中的"bbb"

5.EL表达式的逻辑运算
   empty运算符:如果判断的对象是null或者空字符串,都返回true。对于集合,即使集合对象本身不是null,没有任何元素,也返回true
   ${empty ""} // true
   三元表达式:${user!=null?user.name:""}

6. 11大EL隐式对象中,其中一个是表示自身对象外,其他都是表示的map结构。
EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。
语法:${隐式对象名称}:获得对象的引用

隐式对象名称
描述
pageContext

对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)

pageScope
代表page域中用于保存属性的Map对象
requestScope

代表request域中用于保存属性的Map对象

sessionScope
代表session域中用于保存属性的Map对象
applicationScope
代表application域中用于保存属性的Map对象
param
代表一个保存了所有请求参数的Map对象
paramValues
代表一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是String[]
header
表示一个保存了所有http请求头字段的Map对象
headerValues

同上,返回String[]数组。注意:如果头里面有“-”例Accept-Encoding,则要headerValues[Accept-Encoding]

cookie
表示一个保存了所有cookieMap对象
initParam
表示一个保存了所有web应用初始化参数的map对象


EL隐式对象名称
Java类型
备注
pageContext
java.servlet.jsp.pageContext
与JSP中的内置对象完全相同


剩余的都是代表的Map集合

EL隐式对象名称
Java类型
备注
pageScope
java.util.Map
代表着PageContext页面范围域那个Map
requestScope
java.util.Map
代表着ServletRequest请求范围域那个Map
sessionScope
java.util.Map
代表着HttpSession会话范围域那个Map
applicationScope
java.util.Map
代表着ServletContext应用范围域那个Map
param
java.util.Map
代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串
paramValues
java.util.Map
代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串数组
header
java.util.Map
代表着请求参数头。key:头名称。value:头值,它是一个字符串
headerValues
java.util.Map
代表着请求参数头。key:头名称。value:头值,它是一个字符串数组
cookie
java.util.Map
代表客户端提交的CookieMapkey:cookienamevaluecookie对象本身
initParam
java.util.Map
代表着全局初始化参数(web.xmlcontext-param) .key:参数名称。value:参数值


	<!-- pageContext内置对象 -->
	${pageContext}
	<!-- 在EL中得到HttpServletRequest对象 -->
	${pageContext.request}
	<!-- 在EL中得到当前应用的名称 -->
	${pageContext.request.contextPath}
	<!-- 获取HTTPServletResponse采用的编码 -->
	${pageContext.response.characterEncoding}
		
	<!-- pageScope内置对象 -->
	${pageScope}
	<%
		pageContext.setAttribute(“pp”, “ppp”);
		pageContext.setAttribute(“p”, new Persion(“政权”, “男”, false));
	%>
	${pageScope.pp}// 显示结果ppp
	${pageScope.p.name}// 显示结果 政权



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值