javaweb回顾第九篇EL表达式
前言:关于EL表示式开发用的非常多,现在我们回顾一下关于如果去操作EL表达式
1:EL表达式语法
所有EL表达式都是由{开始}结束,表达式中用.和[]操作符来访问数据比喻${user.userName}、${user["userName"]}是等效的。
2:几个重要的操作符
算术,逻辑,关系操作符和我们java语法操作的一样。
2.1:Empty操作符
Empty操作是判断一个值是否为null或者"",写法如${!empty user}
2.2:三目运算符
EL表达式同时也是支持三目运算符${A?结果1:结果2}比如:${1+1>2?1:2}输出的结果是2
3:隐含对象
在EL表达式中有11中隐含对象下面我一一列举下来
3.1:pageContext
pageContext是javax.servlet.jsp.PageContext的实例,可以通过pageContext访问ServletContext,Request,Response,Session等对象。
3.2:pageScope
我们以前看过Jsp的作用域,这个和Jsp作用域一样,从意思我们可以看出这个主要是获取页面范围内属性的。我们看个例子我们先创建一个jsp文件
<%
UserBean user1=new UserBean();
user1.setAge(12);
user1.setEmail("123@outlook.com");
user1.setUserName("李四");
pageContext.setAttribute("user1", user1);
%>
然后我们开始访问${pageScope.user1.userName} 我也顺便把第一个pageContext的应用加上${pageContext.request.requestURI}
<body>
${pageContext.request.requestURI}
${pageScope.user1.userName}
</body>

3.3:requestScope
主要获取请求范围内的属性的值,在上面的代码修改为以下代码
<%
UserBean user1=new UserBean();
user1.setAge(12);
user1.setEmail("123@outlook.com");
user1.setUserName("李四");
request.setAttribute("user", user1);
%>
jsp中的el为${requestScope.user1.userName}

3.4:sessionScope
这个主要获取会话范围中属性的值。 我们先建立一个Servlet类然后给Session赋值
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserBean user=new UserBean();
user.setAge(19);
user.setEmail("16455@qq.com");
user.setUserName("张三");
HttpSession session=request.getSession();
session.setAttribute("user", user);
}
然后在el.jsp中来获取Session属性的值${sessionScope.user.userName},记得先运行Servlet类然后在运行el.jsp效果如下

3.5:applicationScope
这个是获取全局范围内对象的值,这个不过多的说和上面都一样。
3.6:param
如果我们想获取URL(http://localhost:8080/taglib-test/el.jsp?userName=赵四)请求的参数值,我们就可以使用${param.userName}来获取
3.7:paramValues
这个主要来获取参数请求参数的相关信息是一个数组,用的不是很多
3.8:header
用来获取请求的头信息,如${header["User-Agent"]}来获取头信息中参数的值
3.9:headerValues
主要用来获取请求头信息所有的值。
3.10:cookie
不用说太多
3.11:initParam
主要获取web应用程序初始化参数的值
4:命名变量
在EL表达式中对于命名变量值是通过pageContext.findAttribute()方法来查找完成的,比喻上面如果我们不写他们的范围,那么就会按照page,Request,Session,application来进行查找,所以我们尽量去写,这样可以达到优化程序的目的。
5:EL表达式使用函数
这个和自定义标签很像,我们也可以使用函数
首先我们先定义一个类(我创建了一个很简单的)
public class ElFun {
public static String getHelloWorld(String str)
{
return str;
}
}
然后我们在创建一个tld文件
<?xml version="1.0" encoding="GBK"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<!-- 定 义函数版本 -->
<tlib-version>1.0</tlib-version>
<!-- 定 义函数名称 -->
<short-name>el</short-name>
<!-- 定 义第一个函数 -->
<function>
<!-- 定 义一个函数 -->
<name>hello</name>
<!-- 定 义函数处理类 -->
<function-class>com.lp.els.ElFun</function-class>
<!-- 定 义函数的对应方法 -->
<function-signature>
java.lang.String getHelloWorld(java.lang.String)
</function-signature>
</function>
</taglib>
大家注意一个事项:就是这个定义的函数名是你jsp中el表达式要引用的不要弄错了
然后我们就可以在jsp页面引用
<body>
<%@ taglib uri="/WEB-INF/tlds/el.tld" prefix="el"%>
${el:hello("Hello World")}
</body>
从这里我们看到el后面的hello并不是我们在类中getHelloWorld。还有就是不要习惯性的在el表达式后面加入;号,会带来 错误。最后指的说明的是如果使用EL表达式一定要把值存放起来,比喻存放Request,application,pageContext,Session等,如果不存放是无法使用的。
javaweb回顾第九篇EL表达式的更多相关文章
- JavaWeb(四)EL表达式
前言 前面详细的说明了什么是JSP和它的一些元素,这篇给大家介绍一下的是EL表达式. 用EL表达式,能更好的使用JSP中的各种内置对象和作用域. 楼主作为大四狗马上要出去面试了,内心很紧张!!! 一. ...
- Javaweb学习笔记6—EL表达式与JSTL及自定义标签
今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...
- JavaWeb学习笔记--4.EL表达式
四. 表达式语言(相当于对JSP中对象输出的简化,功能实质上类似) 转自ZHSJUN的博客 http://blog.csdn.net/zhsjun/article/details/2254546 表达 ...
- [应用篇]第一篇 EL表达式入门
概念 EL表达式:EL 全名为Expression Language,就是为了替代<%= %>脚本表达式. 作用 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的 ...
- javaweb(二十九)——EL表达式
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- JavaWeb -- Jsp中的 EL表达式
lEL 全名为Expression Language.EL主要作用: l获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web ...
- javaWeb核心技术第九篇之JSP
JSP:全名是Java Server Pages,它是建立在Servlet规范之上的动态网页开发技术.在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示 ...
- JavaWeb基础Day17 (JSP EL表达式 jstl标签库 beanutil工具类)
JSP jsp的实质就是指在html界面中嵌入Java代码 jsp脚本 <% Java代码 %> 相当于写在service方法中. <%=java 变量或者表达式 %> ...
- javaweb回顾第二篇tomcat和web程序部署
前言这篇主要说下关于tomcat中一些属性和web程序的简单部署,可能在实际开发有更好的部署方式,但是这也是一个基础. 1:tomcat 关于tomcat估计只要接触java的人都听过这个名字,那我们 ...
随机推荐
- Traceroute命令原理(转)
Traceroute命令基本功能 该命令用于测试两个TCP/IP系统之间的网络层连通性和显示传输路径中每一跳地址,又称为路径跟踪,如果Traceroute命令测试成功,我们能够观察到从源主机到目的主机 ...
- Java猜拳小游戏(剪刀、石头、布)
1.第一种实现方法,调用Random数据包,直接根据“1.2.3”输出“剪刀.石头.布”.主要用了9条输出判断语句. import java.util.Random; import java.util ...
- well属性
Bootstrap 有一个 class 属性叫做 well,它的作用是为设定的列创造出一种视觉上的深度感(一种视觉上的效果,动手写代码体会一下).
- Asp.Net异步编程-使用了异步,性能就提升了吗?
Asp.Net异步编程 写在前面的话,很久没有写Blog了,不对,其实一致就没有怎么写过.今天有空,我也来写一篇Blog 随着.Net4.5的推出,一种新的编程方式简化了异步编程,在网上时不时的也看到 ...
- Winodow Server Backup学习向导-window 2008
1.安装Window Server Backup 2.备份服务器 3.恢复服务器 4.优化和备份服务器性能 Windows Server Backup 中的新增功能有哪些? Windows Serve ...
- javascript变量问题
CMAScript变量包含两种不同数据类型的值: 基本类型值:简单的数据段:引用类型值:可能有多个值构成的对象. 5种基本类型:Undefined,Null,Bollean,Number,String ...
- (完全背包 大数)Dollar Dayz (POJ 3181)
http://poj.org/problem?id=3181 Description Farmer John goes to Dollar Days at The Cow Store and disc ...
- MySQL数据导出
1,打开命令行窗口“运行”-->输入CMD 2,进入自己MySQL Server安装目录的bin目录(我的安装目录如下) cd C:\Program Files\MySQL\MySQL Serv ...
- Erlang在Windows上开发环境搭建全过程讲解目录
我会按照下面的列表来一步一步讲解,在windows来开发Erlang所用到的一些工具,和知识.我会不停的添加和修正. Erlang运行时环境 Erlang开发工具选择 Rebar来构建,编译,测试,发 ...
- JavaScript this用法总结
在JavaScript中,this关键字可以说是最复杂的机制之一.对this的作用机制缺乏比较深入的理解很容易在实际开发中出现问题. 1.this的作用 为什么要在JavaScript中使用this呢 ...