jsp-EL表达式简介
表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象!
EL表达式主要用来读取数据,进行内容的显示!
使用EL表达式可以方便地读取对象中的属性、提交的参数、JavaBean、甚至集合!
EL表达式如果找不到相应的对象属性,返回的的空白字符串“”,而不是null,这是EL表达式最大的特点!
- 从attribute中取值,不是param。

之前我们来讲ServletContext对象的时候讲过一个方法findAttribute(String name),EL表达式语句在执行的时候会调用该方法,用标识符作为关键字分别从page、request、session、application四个域中查找相应的对象。这也解释了为什么EL表达式可以仅仅通过标识符就能够获取到存进域对象的数据!
findAttribute()的查找顺序:从小到大,也就是page->request->session->application

上面的代码 等同于调用对象的getter方法,内部是通过反射机制完成的!








EL表达式11个内置对象

测试如下
<%--pageContext内置对象--%>
<%
pageContext.setAttribute("pageContext1", "pageContext");
%>
pageContext内置对象:${pageContext.getAttribute("pageContext1")}
<br> <%--pageScope内置对象--%>
<%
pageContext.setAttribute("pageScope1","pageScope");
%>
pageScope内置对象:${pageScope.pageScope1}
<br> <%--requestScope内置对象--%>
<%
request.setAttribute("request1","reqeust");
%>
requestScope内置对象:${requestScope.request1}
<br> <%--sessionScope内置对象--%>
<%
session.setAttribute("session1", "session");
%>
sessionScope内置对象:${sessionScope.session1}
<br> <%--applicationScope内置对象--%>
<%
application.setAttribute("application1","application");
%>
applicationScopt内置对象:${applicationScope.application1}
<br> <%--header内置对象--%>
header内置对象:${header.Host}
<br> <%--headerValues内置对象,取出第一个Cookie--%>
headerValues内置对象:${headerValues.Cookie[]}
<br> <%--Cookie内置对象--%>
<%
Cookie cookie = new Cookie("Cookie1", "cookie");
%>
Cookie内置对象:${cookie.JSESSIONID.value}
<br> <%--initParam内置对象,需要为该Context配置参数才能看出效果【jsp配置的无效!亲测】--%> initParam内置对象:${initParam.name} <br>

EL表达式回显数据
EL表达式最大的特点就是:如果获取到的数据为null,输出空白字符串""!这个特点可以让我们数据回显

EL自定义函数
EL自定义函数用于扩展EL表达式的功能,可以让EL表达式完成普通Java程序代码所能完成的功能
开发HTML转义的EL函数
我们有时候想在JSP页面中输出JSP代码,但是JSP引擎会自动把HTML代码解析,输出给浏览器。此时我们就要对HTML代码转义。
步骤:
编写一个包含静态方法的类(EL表达式只能调用静态方法),该方法很常用,
- 在WEB/INF下创建tld(taglib description)文件,在tld文件中描述自定义函数

EL函数库(fn方法库)
由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用。
其实EL函数库就是fn方法库,是JSTL标签库中的一个库,也有人称之为fn标签库,但是该库长得不像是标签,所以称之为fn方法库
既然作为JSTL标签库中的一个库,要使用fn方法库就需要导入JSTL标签!要想使用JSTL标签库就要导入jstl.jar和standard.jar包!
fn方法库全都是跟字符串有关的(可以把它想成是String的方法)
fn:toLowerCase
fn:toUpperCase
fn:trim
fn:length
fn:split
fn:join 【接收字符数组,拼接字符串】
fn:indexOf
fn:contains
fn:startsWith
fn:replace
fn:substring
fn:substringAfter
fn:endsWith
fn:escapeXml【忽略XML标记字符】
fn:substringBefore

jsp-EL表达式简介的更多相关文章
- JSP EL表达式
1 EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- EL表达式简介
EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据. ...
- Jsp,EL表达式的入门
Jsp,EL表达式的入门 *Servlet/JSP 是两种动态的WEB资源的两种技术 使用Servlet生成HTML的页面是可以的 response.getWriter("<form ...
- jsp EL表达式 字符串的比较
jsp EL表达式 字符串的比较 跟JavaScript一样,直接使用两个等于号即可:== 代码如下: <c:if test="${highLight == 'visa'}" ...
- JSP EL表达式 获得 request的GET/POST方法
JSP EL表达式 获得 request的GET/POST方法: 不在requestScopse中: <p>得到request的方法</p> <p>pageCont ...
- JSP EL表达式 param、paramValues的使用
JSP EL表达式 param.paramValues的使用: <%@ page language="java" import="java.util.*" ...
- JSP EL表达式使用
JSP EL表达式使用: Servlet: package com.stono.servlet; import java.io.IOException; import java.util.HashMa ...
- JSP EL表达式忽略方法
JSP EL表达式忽略方法: web.xml中,和jsp中:jsp中的等级要高一些: web.xml: <?xml version="1.0" encoding=" ...
- jsp EL表达式和JSTL标签if-else if-else用法
java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...
- JSP EL表达式(转)
一.EL简介 1.语法结构 ${expression}2.[]与.运算符 EL 提供.和[]两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字 ...
随机推荐
- Setting up Scatter for Web Applications
[Setting up Scatter for Web Applications] If you are still using scatter-js please move over to scat ...
- 【c++】内存检查工具Valgrind介绍,安装及使用以及内存泄漏的常见原因
转自:https://www.cnblogs.com/LyndonYoung/articles/5320277.html Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包 ...
- webplus知识点小结
1.返回首页,要在首页栏目里面加链接,直接预览站点的时候地址栏那个地址就行 2.上传图片变色问题,要传jpg格式,不要png 3.留言板制作:后台组件管理->留言板->获取链接 然后在留言 ...
- Chapter3_操作符_直接常量和指数计数法
(1)直接常量 在程序中使用直接常量,相当于指导编译器,告诉它要生成什么样的类型,这样就不会产生模棱两可的情况.比如flaot a = 1f等,后缀表示告诉编译器想生成的类型.常用的后缀有l/L(lo ...
- 把router-link标签渲染成指定的标签
<router-link>标签默认渲染成 <a>标签,可以通过tag属性把router-link渲染成指定的标签,如: <router-link to="/&q ...
- qhfl-9 微信模板消息推送
开发中用的是测试号 微信公众号认证流程 用户登陆 <!DOCTYPE html> <html lang="en"> <head> <met ...
- PowerShell工作流学习-2-工作流运行Powershell命令
关键点: a)inlineScript 活动具有活动通用参数,但不具有PowerShell 通用参数,且inlineScript 脚本块中的命令和表达式不具有工作流的功能b)默认inlineScrip ...
- MySQL 三 二进制安装
二进制格式安装 何谓二进制格式安装? 二进制格式安装,编译好的打包在tar文件里,安装时需要下载后解包至编译时指定的位置,然后进行相关配置,完成安装 版本信息:CentOS 7.4 安装m ...
- Codeforces Round #514 (Div. 2) C. Sequence Transformation
题目大意:给你一个n 从1,2,3......n这个序列中 依次进行以下操作:1 .求所有数的最大公因数,放入a序列里面 2 .任意删去一个元素 一直到序列为空 根据删除元素的不同,导致序列a的字典序 ...
- hive 命令行传入参数
azkban实现任务重跑 我们执行sql的方式是将hql文件上传到服务器本地.然后执行shell命令 hive " -f ./test_scheduler.hql 注:hive -e 是执行 ...