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 ...
随机推荐
- phpstorm调整背景、字体颜色
从这个网站(http://phpstorm-themes.com/)下载各类主题的xml文件, 然后将文件放到phpStorm的文件夹中,比如:C:\Users\USERNAME\.PhpStorm2 ...
- Visual C++ 6.0常用快捷键
一.常用编译相关的快捷键 1.编译(单个文件) Ctrl+F7 2.连接 F7 3.运行 Ctrl+F5 二.常用调试相关的快捷键 1.GO(全速运行) F5 2.Stop Debuging(停 ...
- 工作流(worfflow)
-- 工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务 ...
- AndroidStudio Gradle版本不匹配问题
报错信息: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica } Error:(1, 1) A problem occurr ...
- 引用Excel时 未在本地计算机上注册ace.oledb.12.0
可能由于未安装数据库补丁 下载地址http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/A ...
- 算法练习之:Biorhythms
Biorhythms Time Limit: 1000MS Memory Limit: 10000KB Problem Description Some people believe that th ...
- JavaSE 国际化 简单例子
①在src下添加两个文件: base_zh_CN.properties Test=\u8fd9\u662f\u4e2d\u6587 base_en_US.properties Test=english ...
- 李洪强iOS开发之-环信02.3_具体接口讲解 - Apple Docs
http://www.easemob.com/apidoc/ios/chat3.0/annotated.html Apple Docs.
- 在android4.0中实现View的拖动效果
实现方法: 首先需要定义一个支持拖动的源组件和一个作为Drop区域的目标组件. 在支持拖动的组件中注册OnTouchListener 或LongClickListener监听事件,构建一个ClipDa ...
- php 返回json 解析 报Wide character in print
php 返回json: zabbix:/var/www/html/DEVOPS/Home/Lib/Action# vim EquipmentAction.class.php <?php head ...