1、EL表达式的作用

EL表达式的作用:向浏览器输出域对象中的变量值或者表达式计算结果。
语法:${变量或者表达式}

注:

Jsp的核心语法:jsp的表达式<%= %>和jsp的脚本<% %>。
jsp的开发原则:尽量在jsp页面中少写甚至不写java代码,使用EL表达式替换掉jsp表达式。

2、EL表达式的语法

1) 输出基本的数据类型变量
  1.1从四个域中获取
        ${name}
  1.2指定域获取
        ${pageScope.name}
        域范围:pageScope/requestScope/sessionScope/applicationScope
2) 输出对象的属性值
  ${Student.name}     注意:.name 相当于.getName()方法
3)输出list集合
  ${list[0].name}     注意:[0] 相当于get(下标)方法
4)输出map集合
  ${map[key].name}    注意:[key] 相当于get(key)方法

3、实例

例1:

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL表达式语法</title>
</head>
<body>
<%
String name="rose";
//放入域对象中
//pageContext.setAttribute("name",name);
pageContext.setAttribute("name",name,PageContext.PAGE_SCOPE);
%>
<%-- 打印到页面 --%>
<%=name %>
<br/> <%--从四个域中自动搜索--%>
jsp表达式:<%=pageContext.findAttribute("name")%>
EL表达式:${name }
<br/> <%-- 从指定域中获取数据 --%>
EL表达式:${pageScope.name }
<%--
${pageScope.name} 等同于 <%=pageContext.getAttribute("name",pageContext.PAGE_SCOPE)%>
--%>
</body>
</html>

例2

 <%@page import="com.bw.entity.Student"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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%>"> <title>EL输出不同类型的数据</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%-- 1)EL输出对象的属性 --%>
<%
//保存数据
Student student=new Student("jack",20);
//放入域中
pageContext.setAttribute("student",student); //list集合(保存数据)
List<Student> list=new ArrayList<Student>();
list.add(new Student("rose",18));
list.add(new Student("LiLi",18));
list.add(new Student("jingjing",20));
//放入域中
pageContext.setAttribute("list",list); //Map集合(保存数据)
Map<String,Student> map=new HashMap<String,Student>();
map.put("100", new Student("Mark",20));
map.put("101", new Student("tian",30));
map.put("102", new Student("ergouzi",21));
//放入域中
pageContext.setAttribute("map", map);
%> <%--使用EL表达式获取对象 --%>
${list[0].name } - ${list[0].age }<br/>
${list[1].name } - ${list[1].age }<br/>
${list[2].name } - ${list[2].age }<br/> <%--
list[0]等价于(中括号相对于调用了get(参数)方法)
((list)pageContext.findAttribute("list")).get(0)
--%>
<hr/> <%--使用EL获取Map对象--%>
${map['100'].name } - ${map['100'].age }<br/>
${map['101'].name } - ${map['101'].age }<br/>
${map['102'].name } - ${map['102'].age }<br/>
</body>
</html>

实例结果图

例3:

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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%>"> <title>EL表达式计算</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
26 <%--
27 1)算术的表达式
28 + - * /
29 --%>
加法运算:${10+5 }<br/>
乘法运算:${10*5 }
<hr/> 34 <%--
35 2)比较运算符
36 > < >= <= == !=
37 --%>
${10>5 }<br/>
${10<5 }<br/>
${10!=10 }<br/>
<hr/> 43 <%--
44 3)逻辑运算符
45 && || !
46 --%>
${true && true }<br/>
${true || false }<br/>
${!false }<br/>
<hr/> 52 <%--
53 4)判断
54 null 或者 空字符串 :empty
55 --%>
<%
String name="hello";
pageContext.setAttribute("name",name);
%>
判断null: ${name==null }</br>
判断空字符串: ${name=="" }</br>
判断:${name==null || name=="" }<br/>
另一种判断空的写法:${empty name }
</body>
</html>

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/10163207.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!)

Java基础82 jsp中的EL表达式(网页知识)的更多相关文章

  1. java基础62 JavaScript中的函数(网页知识)

    1.JavaScript中,函数的格式 function 函数名(形参列表){ 函数体; } 2.JavaScript中,函数需要注意的细节 1.在javaScript中,函数定义形参时,是不能使用v ...

  2. jsp中的el表达式没有解析

    今天发现jsp中的el表达式没有解析,把解决的过程记录一下 在web.xml的web-app节点的版本改成2.4以上

  3. SSH 框架controller向jsp传递List jsp中使用el表达式获取

    mvc可以使用ModelAndViev传递数据选择跳转的视图 controller中的代码, 把一个模拟的表单studentListSimulate传给ModelAndView @RequestMap ...

  4. JSP中的EL 表达式

    JSP中的EL 表达式 什么是 EL 表达式,EL 表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的什么作用:EL 表达式主要是代替 jsp ...

  5. JavaWeb -- Jsp中的 EL表达式

    lEL 全名为Expression Language.EL主要作用: l获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web ...

  6. JSP中使用EL表达式

    EL表达式 :EL 全名为Expression Language,就是为了替代<%= %>脚本表达式. EL主要作用: 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种 ...

  7. Jsp中的EL表达式

    EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!! 语法: ${变量或表达式} 可以通过page指令来设置EL表示是否启用,false是不启用,true是启用,默认是true &l ...

  8. 快速学会在JSP中使用EL表达式

    在没有学会EL表达式之前,我们想在JSP文件中获取servlet或者其他JSP页面传来的值,通常都是在JSP页面中编写java代码来实现.而在jsp页面编写Java 代码,这种做法时不规范的,将会产生 ...

  9. JSP中的EL表达式详细介绍

    一.JSP EL语言定义 EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能.脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素.它们通常用于对象操作以及执行那些 ...

随机推荐

  1. 破解CobaltStrike3.12(转)

      0x00  概述 CobaltStrike是一款内网渗透的商业远控软件,支持自定义脚本扩展,功能非常强大.前段时间Github上有好心人放出了CobaltStrike3.12的试用版,接着Lz1y ...

  2. C++继承与组合的区别

    C++程序开发中,设计孤立的类比较容易,设计相互关联的类却比较难,这其中会涉及到两个概念,一个是继承(Inheritance),一个是组合(Composition).因为二者有一定的相似性,往往令程序 ...

  3. MySQL基本了解与使用

    MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格 ...

  4. bzoj1874 [BeiJing2009 WinterCamp]取石子游戏

    1874: [BeiJing2009 WinterCamp]取石子游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 925  Solved: 381[ ...

  5. 静态常量整数成员在class内部直接初始化

    #include <vector> #include <deque> #include <algorithm> #include <iostream> ...

  6. UVALive 7505 Hungry Game of Ants (2015Ecfinal)

    题意: 长度是n的线段上点的编号从1~n,每个点有一只蚂蚁蚂蚁的体重等于该点的编号,最初每只蚂蚁可以选择向右走或者向左走两只蚂蚁相遇时体重大的吃掉体重小的并且体重增加为两只的体重和,走到边界时掉头,问 ...

  7. 一、初识java

    理论性的东西就不在笔记中作为纪录了. 先来解释下java安装过程中的一些问题,java安装和环境配置不多做强调,可以参考http://www.cnblogs.com/JianXu/p/5158404. ...

  8. shell实例浅谈之一产生随机数七种方法

    一.问题 Shell下有时需要使用随机数,在此总结产生随机数的方法.计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数).伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产 ...

  9. 用Anaconda安装本地python包

    Anaconda确实带来了很多方便,但是之前也过多的依赖了conda自带的一键下载python包的功能.这不,这几天突然要用FastFM这个包,无奈conda里没有,于是只能从github下载下来,实 ...

  10. Window10+Python3.5安装opencv

    Window10+Python3.5安装opencv 标签: opencvpython 2017-05-14 16:47 2201人阅读 评论(0) 收藏 举报  分类: Python编程(41)  ...