EL知识点总结 - canger - 博客园
http://www.cnblogs.com/canger/p/6675799.html

1 只可以获取内置对象的属性值,不可以获取JSP页面中局部java变量的值

<%
String name = "James";
request.setAttribute("name",name);
int age = 30;
%>
<h2>${name}</h2>
<h2>${age}</h2>

2 只有“${”两个字符连续出现时,才表示EL的开始,任何单独字符出现时都可正常显示

<%
String name = "James";
request.setAttribute("name",name);
%>
<h2>${name}</h2>
<h2>$${name}</h2>
<h2>{${name}</h2>

3 如果只出现了“${”,而没有“}”作为结束,则服务器报错,出现空的“${}”时,服务器报错

4 需要输出“${”时,需要写为“\${”(页面最终显示时会去掉“\”),或者写成“${'${'}”

<h2>\${}</h2>
<h2>${"${}"}</h2>

5 EL运算符中的“+”的操作数只可以是数字运算或者可以转换为数字的字符串,对不可以转换为数字的字符串运用“+”运算讲产生错误

<h2>${123+"124"}</h2>

6 对于EL的empty运算符,null对象与空字符串“”、空数组、空list等是等价的

<%
request.setAttribute("emptyString","");
request.setAttribute("nullObject",null);
request.setAttribute("emptyList",new ArrayList<String>());
request.setAttribute("emptyMap",new HashMap<String,String>());
%>
<h2>${empty emptyString}</h2>
<h2>${empty nullObject}</h2>
<h2>${empty emptyList}</h2>
<h2>${empty emptyMap}</h2>
</body>

7 EL获取某个对象的值时,本质是调用该对象的toString()方法

<%
request.setAttribute("requestString",request.toString());
%>
<html>
<body>
<h2>${requestString}</h2>
<h2>${pageContext.request}</h2>
</body>
</html>

8 EL的内置对象与JSP的内置对象并不相同(除了pageContext对象),两者关系是:EL的内置对象可以访问对应的JSP内置对象通过setAttribute方法存储的值

  • EL内置对象共有11个:pageContext、pageScope、requestScope、sessionScope、applicationScope、param、paramValues、header、headerValues、initParam、cookie(注意不存在responseScope,因为EL的本质是为了获取某个值,而不是设置)
  • JSP的内置对象共有9个:pageContext、page、resquest、response、session、application、out、config、exception
  • 在页面中直接使用${request}等会报错
  • 通过pageContext可以实现EL对JSP内置对象的获取,${pageContext.request}
  • 通过pageContext可以获取的对象有page、resquest、response、session、out、exception、servletContext
  • 不可以通过pageContext可以获取的对象有application、config、pageContext

9 获取JSP作用于范围对象attribute的两种方法

<%
request.setAttribute("name","Shao");
%>
<h2>${requestScope["name"]}</h2>
<h2>${requestScope.name}</h2>

注意,下面的写法是错误的,因为request对象并不存在getName方法

<h2>${pageContext.request.name}</h2>

10 获取JSP作用于范围对象属性的方法

<h2>${pageContext.request.serverPort}</h2>

EL知识点总结的更多相关文章

  1. jsp与El,jstl知识点总结归纳

    jsp与El,jstl知识点总结归纳 jsp部分 一.jsp的三大指令 page ,include,taglib 1.jsp中的page指令 <% page %>-设置jsp 例如: &l ...

  2. 对EL自己以及对于param、header、cookie的相关应用的相关知识点的复习

    EL表达式语言是一种可以计算和输出的java对象的简单语言. 列入请求语句为下面的方式:request.setAttribute("username","zhangsan ...

  3. 170819-关于EL表达式的知识点

    1 .EL表达式 [1] 简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. > ...

  4. Spring知识点回顾(04)el 和资源使用

    注入普通字符 注入操作系统属性 注入表达式运算结果 注入其他bean属性 注入文件内容 注入网址内容 注入属性文件

  5. [vue案例的知识点]todo-list

    文章的原材料来自于vue的官方示例:https://cn.vuejs.org/v2/examples/todomvc.html,我们在学习过程中,试着对其中的一些知识点进行记录: 一.浏览器数据存储, ...

  6. javascript中的一些核心知识点以及需要注意的地方

    前言 近期杂事甚多,这些事情的积累对知识体系的提升有好处,但是却不能整理出来,也整理不出来 比如说我最近研究的Hybrid在线联调方案便过于依赖于业务,就算分享也不会有人读懂,若是抽一点来分享又意义不 ...

  7. 小型移动 webApp Demo 知识点整理

    包括内容: css初始化.css全局设置.常用meat标签.rem适配.flex布局.相关技巧(手势库使用.多行截字.1像素边线.点击状态.placeholder居中等) reset 引用 norma ...

  8. JavaScript 总结几个提高性能知识点

    前段时间花时间看了大半的<High Performance JavaScript>这本书啊,然后就开始忙项目了,庆幸最忙的一周已经熬过去了.由于空不出时间,这个月写的学习笔记也不多,忙完最 ...

  9. 程序员必懂:javaweb三大框架知识点总结

    原文链接:http://www.cnblogs.com/SXTkaifa/p/5968631.html javaweb三大框架知识点总结 一.Struts2的总结 1.Struts 2的工作流程,从请 ...

随机推荐

  1. mongoDB-Explain

    新版的MongoDB中的Explain已经变样了 Explain支持三种Mode queryPlanner Mode db.collection.explain() 默认mode是queryPlann ...

  2. IDEA和WebStorm破解教程--激活n年(随时更新)

    首先,打开蓝雨的官网--->http://idea.lanyus.com/,找到这个jar包  之后,去官网下载IDEA--->https://www.jetbrains.com/idea ...

  3. 【清北学堂2018-刷题冲刺】Contest 7

    Task 1:小奇采药 [问题描述]  小奇是只天资聪颖的喵,他的梦想是成为世界上最伟⼤的医师.  为此,他想拜喵星球最有威望的医师为师.  医师为了判断他的资质,给他出了⼀个难题.  医师把他带到⼀ ...

  4. commons工具类 FilenameUtils FileUtils

    首先要导入conmmon.jar包 FileUtils类 package cn.lijun.demo2; import java.io.File; import java.io.IOException ...

  5. qml:基本知识记录

    1.  property信号处理函数: 在qml中,通过property可以定义属性,这些属性自带信号处理函数,例如: property   string    szTitle: “hello wor ...

  6. 1411 - Ants(巨人与鬼)

    参考博客 紫薯P230 题意:给出平面上n个白点n个黑点,要求两两配对,且配对所连线段没有交点. 紫薯思路:找出y坐标最小的点,如果多个,考虑x最小的.将其他点相对于这个点按极角从小到大排序,然后开始 ...

  7. Hadoop端口说明

    Hadoop端口说明: 默认端口                            设置位置                                    描述信息 8020        ...

  8. 面向对象【林老师版】:面向过程vs面向对象(一)

    一.面向过程 1.引子 面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式优点:复杂的问题流程化,进而简单化缺点:可扩展性差 2.验证代码 import json i ...

  9. js截取url地址后面的文件名

    let url = response.data.stuXscg[0].fj let num = url.lastIndexOf('/')+1 let name = url.substring(num) ...

  10. BBS总结

    表设计 from django.db import models from django.contrib.auth.models import AbstractUser # Create your m ...