11、el表达式

EL表达式
  1. EL表达式:${表达式内容},简化我们的开发
  • 在页面显示域中的属性值
  • 要获取对象中的某个属性直接使用.属性名的方式
  • el表达式如果获取域中的属性,直接写属性名,他会从四个域从小到大找,找到即停止,而且EL表达式可以连点操作

pageContext<request<session<application

  • el有11个隐含对象,el可以取出11隐含对象的数据,取不出页面自己定义的数据

-四个域对象:是从这四个域对象中取值

  • pageContext域中的数据:pageScope(封装了pageContext域中的所有的共享数据(setAttr,getAttr)),他是一个Map
  • request域中的数据:requestScope(封装了request域中的所有数据(setAttr,getAttr)),他也是一个Map
  • session域中的数据:sessionScope(封装了session域中的所有数据(setAttr,getAttr)),他也是一个Map
  • application域中的数据:applicationScope(封装了application域中的所有数据(setAttr,getAttr)),他也是一个Map
<%
	Student stu=new Student("张三",18);
	//给pageContext域中设置内容
	pageContext.setAttribute("pageUser",stu);
	//给request域中设置内容
	request.setAttribute("reqUser", "reqName");
	//给session域中设置内容
	session.setAttribute("sessUser","sessName");
	//给application域设置内容
	application.setAttribute("appUser", "appName");
%>
<!-- EL表达式 ${表达式内容}-->
page:${pageScope.pageUser.name}<br/>
request:${requestScope.reqUser}<br/>
session:${sessionScope.sessUser}<br/>
application:${applicationScope.appUser}<br/>
  • el表达式如何获取stu-x这些特殊命名的属性(因为会产生歧义)

使用 作用域[‘属性名’]方式即可取出

如:

<%
	request.setAttribute("stu-x","123456");
%>
el:${requestScope['stu-x']}

取map中的数据可以使用. 也可以使用[key]

  • pageContext:一个非map对象,pageContext代表的是jsp隐含对象中的pageContext,取出其他隐含对象

-pageContext可以取出jsp页面其他的隐含对象

${pageContext.request.scheme}
<%=pageContext.getRequest().getScheme()%>
以上两种方式相等
  • 与http协议有关的隐含对象

-param (封装了所有请求参数的key-value)对应一个请求参数 相当于request.getParamer(“username”)
-paramValues 对应一组请求参数
-header 请求头 request.getHeader(“User-Agent”)
-headerValues 请求头返回字符数组
-cookie 获取某个cookie对象 取出cookie的值

请求参数:${param.username}
请求头:${header['User-Agent']}
Cookie:${cookie.JSESSIONID.name}||${cookie.JSESSIONID.value}

-initParam:initParam获取web的初始化参数

web.xml中的配置
<context-param>
	<param-name>user</param-name>
	<param-value>root</param-value>
</context-param>
jsp中的内容
初始化参数:${initParam.user}
  1. el表达式运算符
  • 算数运算:${}
  • 关系运算:${}
  • 逻辑运算:${}
  • empty运算:判断一个对象是否为空

1)null:变量的值为null或域对象中不存在这个对象,则返回true

2)空集合:返回true

3)空字符串:返回true

4)空字符:返回true

5)空数组:int[] i=null,返回true,若new了新的数组,则为false

${empty 对象}
${empty pageScope.stu}
  • 三目条件运算:A?b:c
  1. 获取项目路径

${pageContext.request.contextPath}

  1. el存在的意义
  • 简化操作

  • 友好显示

  • <base href="${路径}"/>
  1. 项目第四阶段,使用EL进行错误消息提示以及表单回显
  • el-》获取数据方便,如果没有属性就是什么都没有“”,不用做三元运算
  • 将相应的jsp表达式换成el表达式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值