Jsp中的EL表达式
EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!!
语法: ${变量或表达式}
可以通过page指令来设置EL表示是否启用,false是不启用,true是启用,默认是true
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>
1)输出基本数据类型变量
1.1 从四个域获取
${name}
1.2 指定域获取
${pageScope.name}
域范围: pageScoep / requestScope / sessionScope / applicationScope
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<%
//放入域对象中
pageContext.setAttribute("name", "gqxing");
%>
<%--下面代码等价于pageContext.findAttribute("name") --%>
${name}
<br>
<%--也可以从指定的域中获取数据 等价于 pageContext.getAttribute("name",pageContext.pageScope--%>
${pageScope.name}
</body>
</html>
运行结果

2)输出对象的属性值
2、1)输出实体对象
首先创建实体对象:
package com.gqx.entity;
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student() {
}
}
然后去jsp页面设置域对象
<%@ page language="java" import="java.util.*,com.gqx.entity.Student" pageEncoding="UTF-8" isELIgnored="false"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<%--用el去输出对象的属性 --%>
<% //保存对象
Student student = new Student("gqx",21);
pageContext.setAttribute("student", student);
%>
<%--使用域对象去获取数据 --%>
${student.name}——${student.age}
<%-- 等价于((Student)pageContext.findAttribute("student")).getName()--%>
<hr>
<%=((Student)pageContext.findAttribute("student")).getName() %>
</body>
</html>
运行结果如图所示

这个时候我们要注意到一个细节问题,我们在student对象中设置了私有属性,我们却在jsp中访问到了,如下
private String name;
private int age;
这个时候我们想一想,这肯定是不可能的,所以,在这里查阅资料发现原来在el表达式中 ${student.name}的.name”就相当于getName()方法,这个时候我可以去验证一下,我可以在student类中去吧getName()方法改名字

发现结果正如我们想的一样。但并没有报出属性出错的问题,我们再来做一个实验,我们作如下更改,把name名字给改了,发现其还能正常的运行,这又完美的验证了我们的结论
public class Student {
private String name1;
private int age;
public String getName() {
return name1;
}
...........................

3)输出集合对象
List 和 Map
首先来看List的代码示例
< <% List<Student> list =new ArrayList<Student>();
list.add(new Student("gqx",21));
list.add(new Student("gqxing",22));
list.add(new Student("guoqingxing",22));
pageContext.setAttribute("list", list);
%>
<hr>
<%--使用EL获取List表达式 --%>
${list[0].name}-${list[0].age } <br>
${list[1].name}-${list[1].age } <br>
${list[2].name}-${list[2].age } <br>
<hr>
<%--等价于 --%>
<%=((Student)((List)pageContext.findAttribute("list")).get(0)).getName() %> <hr>
将这段代码放入到jsp的body中去,运行结果如下

再来看看Map,同样,加入如下的代码
<% //MAP
Map<String,Student> map=new HashMap<String,Student>();
map.put("001", new Student("gqx",21));
map.put("002", new Student("gqxing",22));
map.put("003", new Student("guoqingxing",22));
//放入到域中去
pageContext.setAttribute("map", map);
%> <%--使用EL获取List表达式 --%>
${map['001'].name}-${map['001'].age } <br>
${map['002'].name}-${map['002'].age } <br>
${map['003'].name}-${map['003'].age } <br>
运行结果如下:

4)、EL表达式计算
利用el表达式完成以下几种表达式的计算
10+5=${10+5} <br>
10*5=${10*5} <br>
10/5=${10/5} <br>
<hr>
<%-- 比较运算 --%>
10>5:${10>5}<br>
10<5:${10<5}<br>
2=2:${2==2}<br>
<hr>
<%-- 逻辑运算符 --%>
true && false :${true && false}<br>
true || false :${true || false}<br>
!true:${!true }<br>
<hr>
<%--判断是否为空 --%>
<%
String name= "gqxing";
String value1=null;
String value2="";
//放进域对象中
pageContext.setAttribute("name", name);
pageContext.setAttribute("value1", value1);
pageContext.setAttribute("value2", value2);
%>
${name==null}<br>
${value1==null}<br>
${value2==""}<br>
<%--一下两种方法去判断空字符串 --%>
${value1==null || value1==""}<br>
${empty name}<br>
结果如下:

Jsp中的EL表达式的更多相关文章
- jsp中的el表达式没有解析
今天发现jsp中的el表达式没有解析,把解决的过程记录一下 在web.xml的web-app节点的版本改成2.4以上
- SSH 框架controller向jsp传递List jsp中使用el表达式获取
mvc可以使用ModelAndViev传递数据选择跳转的视图 controller中的代码, 把一个模拟的表单studentListSimulate传给ModelAndView @RequestMap ...
- JSP中的EL 表达式
JSP中的EL 表达式 什么是 EL 表达式,EL 表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的什么作用:EL 表达式主要是代替 jsp ...
- JavaWeb -- Jsp中的 EL表达式
lEL 全名为Expression Language.EL主要作用: l获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web ...
- JSP中使用EL表达式
EL表达式 :EL 全名为Expression Language,就是为了替代<%= %>脚本表达式. EL主要作用: 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种 ...
- 快速学会在JSP中使用EL表达式
在没有学会EL表达式之前,我们想在JSP文件中获取servlet或者其他JSP页面传来的值,通常都是在JSP页面中编写java代码来实现.而在jsp页面编写Java 代码,这种做法时不规范的,将会产生 ...
- Java基础82 jsp中的EL表达式(网页知识)
1.EL表达式的作用 EL表达式的作用:向浏览器输出域对象中的变量值或者表达式计算结果.语法:${变量或者表达式} 注: Jsp的核心语法:jsp的表达式<%= %>和jsp的脚本< ...
- JSP中的EL表达式详细介绍
一.JSP EL语言定义 EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能.脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素.它们通常用于对象操作以及执行那些 ...
- JSP中,EL表达式向session中取出一个attribute和JSP脚本访问session取出一个attribute,写法有何不同?(转自百度知道)
EL表达式使用起来会更简洁,假如session中有一个属性A(attrA),那么EL和jsp脚本取值的方式如下: EL表达式:${ sessionScope.attrA } JSP脚本:<%=s ...
随机推荐
- 快速设置IP的脚本
@echo off cls ::set NAME="本地连接" set NAME="无线网络连接" set IP=192.168.1.55 set MASK=2 ...
- 13个小技巧帮你征服Xcode
本文由CocoaChina翻译组成员唧唧歪歪(博客)翻译自David McGraw的博客原文:13 Xcode Tips That Will Help You Conquer Xcode当谈论到iOS ...
- RegexKitLite 使用详解
1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中. 2.工程中添加libicucore.dylib frameworks. 友情提醒:一般 ...
- 理解和熟练运用js中的call及apply
call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向. 因为 JavaScript 的函数存在「定义时上下文」和 ...
- js获取域名的方法
本文实例讲述了js获取域名的方法.分享给大家供大家参考.具体实现方法如下: 复制代码代码如下: <script>//获取域名var k_host = window.location.hos ...
- python学习之”迭代从入门到精通“
在开发的过程中,假如给你一个list或者tuple,我们可以通过for循环来遍历这个list或者tuple,这种遍历我们成为迭代(Iteration).在Python中,迭代是通过for ... in ...
- [原博客] POJ 1740 A New Stone Game
题目链接题意:有n堆石子,两人轮流操作,每次每个人可以从一堆中拿走若干个扔掉(必须),并且可以从中拿走一些分到别的有石子的堆里(可选),当一个人不能拿时这个人输.给定状态,问是否先手必胜. 我们参考普 ...
- 怎样在Win7 64位旗舰版安装Python+Eclipse开发环境
原地址:http://www.cnblogs.com/balian/archive/2011/06/19/2084632.html 自从上周抛弃了WinXP转而安装了Win7,64位后,尝试安装Pyt ...
- PNG在IE6下背景问题
png24.min.js 源代码: var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,c ...
- 【BZOJ 1594】 [Usaco2008 Jan]猜数游戏 (二分+并查集)
1594: [Usaco2008 Jan]猜数游戏 Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面 ...