博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[应用篇]第一篇 EL表达式入门
阅读量:6005 次
发布时间:2019-06-20

本文共 3053 字,大约阅读时间需要 10 分钟。

概念

EL表达式:EL 全名为Expression Language,就是为了替代<%= %>脚本表达式。

作用

  • 获取数据

    EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)

  • 执行运算

    利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}

  • 获取web开发常用对象

    EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。

  • 调用Java方法

    EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

其实感觉这个地方是应该会很好玩的!例如自定标签和自定义函数!

使用EL表达式获取数据

  1. 使用EL表达式获取数据语法:“${标识符}”

    EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回””

(注意,不是null,而是空字符串)

示例:${user}
<%=((HttpServletRequest)pageContext.getRequest()).getContextPath() %> 在获取后对象后要加括号才能继续调用对象身上的方法
${pageContext.request.contextPath} 这个还是需要记忆下有用

  1. EL表达式也可以很轻松获取JavaBean的属性或获取数组、Collection、Map类型集合的数据,例如:

${strs[1]} //获取数组中的元素${user.address.city}//链式操作获取值${user.list[0]}:访问有序集合某个位置的元素${map.key}  : 获得map集合中指定key的值

通过JSTL标签中的C标签的foreach进行迭代,这个我们已经做过了!

EL表达式执行运算[重点中的重点]

(1) 算数运算:所有参与元算的元素都会被转成数字,如果不能转就报错,空元素参与运算当作没参与。(2) 关系运算:必须记忆下来     == --->    eq    例如:${5==5}或${5 eq 5}      != --->    ne       <  --->    lt        >  --->    gt       <= --->    le      >= --->    ge      (3) **逻辑运算:**&&  --->   and   例如:${A&&B}或${A and B}||  --->   or  !   --->   not(4) empty/not empty 判断一个对象或集合或数组是否为null或长度为0(5) 条件表达式 ${user!= null ? user.name : "";//三元运算符(6) []和.号运算符

使用EL表达式获得Web开发常用对象

EL表达式语言中定义了 11个隐含对象 ,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。

语法:${隐式对象名称} :获得对象的引用

隐藏对象 描述
pageContext 代表pageContext对象,注意和pageScope进行区分
pageScope 代表page域,可以用来获取page域中的属性
reqeustScope 代表reqeust域,可以用来获取reqeust域中的属性
sessionScope 代表session域,可以用来获取session域中的属性
applicationScope 代表application域,可以用来获取application域中的属性
param 代表请求参数组成的map集合${param.userName} 相当于 request.getParameter("userName")
paramValues 代表请求参宿组成的map集合,但是此集合的value是String[],用来获取一名多值的param 相当于 request.getParameterValues("userName")
cookie 获取cookie组成的map对象,此map的值是一个cookie对象${cookie.cookieName.cookieValue}
header 获取所有HTTP请求字段的map对象
headerValues 同上,获取请求头组成的map,但是value是一个String[]
initParam 以map封装的web.xml中配置的整个web应用的初始化参数

示例测试代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>      <%--      ${pageContext }      ${pageScope }      ${requestScope }      ${sessionScope }      ${applicationScope }   --%>       获取请求参数      ${param.name }    

获取请求头 <%= request.getHeader("Host") %> ${header.Host } ${header["Accept-Language"] }

el表达式获取cookie信息
<% Cookie cookie = new Cookie("host","localhost"); response.addCookie(cookie); %> <% Cookie [] cs = request.getCookies(); if(cs!=null){ for(Cookie c : cs){ if("host".equals(c.getName())){ out.write(c.getValue()); } } } %>
cookie.host.value: ${cookie.host.value}

整个web应用的初始化参数
<%= application.getInitParameter("data1") %>
initParam: ${initParam.data1 }

pageContext.request:${pageContext.request }
pageScope.request:${pageScope.request }

转载地址:http://dtpmx.baihongyu.com/

你可能感兴趣的文章
HDU 1325 Is It A Tree? 判断是否为一棵树
查看>>
[原]linux 配置 ssh 等效性
查看>>
51nod 1052 (dp)
查看>>
《ListBox》———设计预览效果
查看>>
闲话__stdcall, __cdecl, __fastcall出现的历史背景以及各自解决的问题
查看>>
NOI后训练记录
查看>>
二分法和牛顿迭代法
查看>>
OutLook The profile name you entered already exists.Enter a different profile name.
查看>>
Shell命令-文件压缩解压缩之gzip、zip
查看>>
The Unique MST
查看>>
个人总结
查看>>
uva 673 Parentheses Balance
查看>>
申请Let’s Encrypt免费证书,给自己网站增加https访问
查看>>
javascript+html 实现隐藏 显示
查看>>
BZOJ 2120 数颜色
查看>>
正则表达式学习笔记——基础知识
查看>>
织梦如何实现二级栏目导航的仿制
查看>>
网上购物系统(Task010)——FormView编辑更新商品详细信息
查看>>
Struts2 技术全总结 (正在更新)
查看>>
PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
查看>>