必威体育Betway必威体育官网
当前位置:首页 > IT技术

JavaWeb(EL表达式学习笔记)

时间:2019-06-16 05:45:18来源:IT技术作者:seo实验室小编阅读:83次「手机版」
 

el

EL表达式

一、什么是EL:

1.1、EL

– Expression Language 表达式语言

1.2、语法:

${EL表达式}

1.3、与JSP表达式区别:

JSP中使用的变量是脚本变量,而EL中的变量都是作用域变量,要操作的变量都在作用域中。

二、EL表达式的作用

2.1、用于表达式的运算。如:加、减、乘、除。

2.2、用于从作用域中取出数据

三、获取数据

3.1、在四个域中查找:比如在一个域中设置了“color”属性,现在获取

EL: ${color},功能与pagecontext.findAttribute(“color”) 一样。

3.2、指定域获取数据

作用域 java代码 EL的写法
页面域 pageContext.getAttribute(“color”); ${pageScope.color}
请求域 request.getAttribute(“color”); ${requestScope.color}
会话域 session.getattribute(“color”); ${sessionScope.color}
上下文域 APPlication.getAttribute(“color”); ${applicationScope.color}
自动查找 pageContext.findAttribute(“color”); ${color}

3.3、EL中11个隐式对象

隐含对象名称 描述
pageContext 代表页面上下文对象,可以在页面上调用get方法
pageScope 代表页面域中的Map对象
requestScope 代表请求域中的Map对象
sessionScope 代表会话域中的Map对象
applicationScopeScope 代表上下文域中的Map对象
param 得到表单提交参数,功能与:request.getparameter()相同
paramValues 得到表单提交参数,功能与:String[] request.getParameterValues()相同
header 得到请求头的数据 request.getHeader(“名字”)
headerValues 得到请求头的数据 request.getheaders(“名字”)
cookie 得到请求的Cookie信息
initParam 相当于config.getInitParamter()得到web.xml中配置的参数

3.4、pageContext调用get的方法

作用 JSP表达式 EL的写法
当前工程路径 <%=request.getcontextpath() %> ${pageContext.request.contextPath}
请求资源路径 <%=request.getContextURL() %> ${pageContext.request.contextURL}
访问者的IP <%=request.getRemoteAddr() %> ${pageContext.request.remoteAddr}
当前会话的ID <%=request.getSession().getId() %> ${pageContext.request.session.id}

3.5、得到Cookie中的值:

先通过EL得到指定cookie的对象,再通过name和value得到具体的名字和值

<%

Cookie c = new Cookie(“man”,”jack”);

response.addCookie(c);

%>

读取Cookie:

名字:cookie.man.name<值:{cookie.man.value } <%– 调用 cookie.getValue() –%>

3.6、EL表达式中[]和.的区别

如果一个变量名中有特殊的字符,则应用使用[“名字”];

比如获取header中host属性,一共有两种写法:

header[“host”]{header.host }

若获取user-agent属性,只能使用中括号

${header[“user-agent”]}

四、EL表达式获取不同类型的数据

4.1获取JavaBean的属性值

 

<%

//创建一个对象

Student stu = new Student(“张三”, 20);

stu.setMale(true);

//把对象放到域

pageContext.setAttribute(“a”, stu);

%>

姓名:${a.name} 年龄:${a.age} 性别:${a.male}

4.2获取数组中的值

 

<%

String[] arr = {“aaa”,”bbb”,”cccc”};

pageContext.setAttribute(“arr”, arr);

%>

取数组中的元素:

${arr[0]}

${arr[1]}

${arr[2]}

4.3获取Map中的值

 

<%

map.put(“n1”, “猪八戒”);

map.put(“n2”, “唐僧”);

map.put(“n3”, “孙悟空”);

//放在请求域中

request.setattribute(“map”, map);

%>

${map.n1}

${map[“n2”]}

${map.n3}

4.4输出List中指定索引位置的元素

 

<%

book.add(“水浒传”);

book.add(“西游记”);

book.add(“红楼梦”);

session.setattribute(“books”, book);

%>

${books[0] }

${books[1] }

${books[2] }

五、EL中使用表达式

5.1算术表达式 :

算术运算符 说明 范例 结果
+ ${1+1} 2
- ${2-1} 1
* ${1*1} 1
/或p ${5 p 2} 2.5
%或mod 取余 ${5 mod 2} 1

5.2比较表达式

关系运算符 说明 范例 结果
==或 eq 等于(equal) ${1 eq 1} true
!= 或 ne 不等于(not equal) ${1 != 1} false
< 或 lt 小于(Less than) ${1 lt 2} true
<=或 le 小于等于(Less than or equal) ${1 <= 1} true
> 或 gt 大于(Greater than) ${1 > 2} false
>=或 ge 大于等于(Greater than or equal) ${1 >=1} true

5.3逻辑表达式 :

逻辑运算符 说明 范例 结果
&& 或 and 交集(与) ${A and B} true / false
|| 或 or 并集(或) ${A || B } true / false
! 或 not ${not A} true / false

5.4三元运算:

 

${表达式?真:假}

5.5判空表达式:

5.5.1语法:

 

${empty 变量名} 判断变量名是否为空或空串,如果是,则返回true

5.5.2作用:

1)判断一个变量是否为null

2)判断一个字符串是否是空串

3)判断一个集合是否有元素

<%

request.setAttribute(“num”, 5);

request.setAttribute(“str”, “”);

//创建一个集合

ArrayList list = new ArrayList();

pageContext.setAttribute(“list”, list);

%>

1) 创建一个变量是否为null

${empty num}

2) 创建一个字符串是否是空串

${empty str}

3) 创建一个集合是否有元素

${empty list }

5.6EL表达式的启用和禁用

5.6.1页面禁用

isELignored=”true” 忽略EL表达式,EL不起作用。

5.6.2 EL的转义

\ ${5 p 3 } \表示这个表达式不起作用

相关阅读

easel:如何制作好的信息图——来自专家的顶级技巧

【Martin导读】信息图营销正成为一种热门的内容营销形式,信息图具有视觉化传播优势,易于被分享,拥有能够激起用户参与的潜力,这些特点

常量表达式

字面值:是一个不能改变的值,如数字、字符、字符串等。单引号内的是字符字面值,双引号内的是字符串字面值。字面值类型(literal type):算

关闭SELINUX

SELINUX一款为了提高系统安全性的软件,但是会和好多服务都冲突,非常麻烦,大家都选择关闭!查看selinux状态:# getenforce  Disabled

关于SetCapture() 和 ReleaseCapture()的用法

  查MSND,对SetCapture()函数的说明为:“该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对

[图像处理] Sobel边缘检测算法

完成时间:2017/1/23 我的实现结果如下:(图一为原图,图二为边缘检测结果)             关于Sobel算子(英文部分来源于Wikipedia

分享到:

栏目导航

推荐阅读

热门阅读