表达式语言Expression Language
目的:简化jsp代码

EL内置对象

1、pageContext
2、pageScope
3、requestScope
4、sessionScope
5、applicationScpoe
6、param
7、paramValues
8、header
9、headerValues
10、cookie
11、initParam

示例1

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EL表达式</title>
</head>
<body> <%
pageContext.setAttribute("name", "Allen");
request.setAttribute("age",24);
session.setAttribute("sex","女");
application.setAttribute("cellphone",131);
%> <h3>姓名:${name }</h3>
<h3>年龄:${age }</h3>
<h3>性别:${sex }</h3>
<h3>电话:${cellphone }</h3>
</body>
</html>

  

//寻找值的顺序
//page>request>session>application

当pageContext、request、session、application都设计键为name是,值value是谁的呢?  

验证寻找顺序:

<%
pageContext.setAttribute("name", "Allen");
request.setAttribute("name",24);
session.setAttribute("name","女");
application.setAttribute("name",131);
%> <h3>姓名:${name }</h3>

  

【EL表达式接受请求参数】

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EL表达式</title>
</head>
<body>
<%-- post提交 --%>
<form method="post" action="target.jsp">
<input type="text" name="userName" />
<input type="submit" value="提交到target.jsp">
</form>
<%-- get提交 --%>
<a href="target.jsp?age=24">get提交</a>
<%-- post提交多个参数 --%>
<form method="post" action="target.jsp">
<input type="checkbox" name="instr" value="登山" />登山
<input type="checkbox" name="instr" value="滑雪" />滑雪
<input type="checkbox" name="instr" value="骑行" />骑行
<input type="checkbox" name="instr" value="游泳" />游泳
<input type="submit" value="提交到target.jsp">
</form> </body>
</html>

  

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>target</title>
</head>
<body>
<% request.setCharacterEncoding("utf-8"); %> <h3>姓名:${param.userName }</h3> <h3>年龄:${param.age }</h3> <h3>兴趣1:${paramValues.instr[0] }</h3>
<h3>兴趣2:${paramValues.instr[1] }</h3>
<h3>兴趣3:${paramValues.instr[2] }</h3>
<h3>兴趣4:${paramValues.instr[3] }</h3>
</body>
</html>

  【对象操作】简单java类不用page引入,使用JavaBean

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EL</title>
</head>
<body> <jsp:useBean id="user" scope="page" class="com.zhiqi.model.User"></jsp:useBean> <jsp:setProperty property="id" name="user" value="10010"></jsp:setProperty>
<jsp:setProperty property="name" name="user" value="王晓丽"></jsp:setProperty>
<jsp:setProperty property="sex" name="user" value="女"></jsp:setProperty>
<jsp:setProperty property="age" name="user" value="24"></jsp:setProperty> <jsp:getProperty name="user" property="id"></jsp:getProperty><br>
<jsp:getProperty name="user" property="name"></jsp:getProperty><br>
<jsp:getProperty name="user" property="sex"></jsp:getProperty><br>
<jsp:getProperty name="user" property="age"></jsp:getProperty><br> <%--EL 与JavaBean比较 --%> ${user.id }<br><%--EL对象操作 --%>
${user.name }<br>
${user.sex }<br>
${user.age }<br> </body>
</html>

【运算符操作】

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EL运算符操作</title>
</head>
<body> <% request.setAttribute("x", 10); %>
<% request.setAttribute("y", 4); %> <%--算数四则原酸--%>
${x+y }<br>
${x-y }<br>
${x*y }<br>
${x/y }<br>
${x%y }<br> <% request.setAttribute("z", true); %>
<% request.setAttribute("fal", false); %> <%--布尔运算 --%>
${z }<br>
${!z }<br>
${z && fal }<br>
${z || fal }<br> <%--空判断 --%>
空判断:${empty z }<br> <% request.setAttribute("z", ""); %>
空判断:${empty z }<br> <%--三目运算 --%>
<h4>x与y的大小:${x>y? x:y }</h4> </body>
</html>

  

【EL操作List】

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EL操作List</title>
</head>
<body>
<%
List l=new LinkedList();
l.add(0,"北京");
l.add(1,"上海");
l.add(2,"广州");
request.setAttribute("l",l);
%> ${l[0] }<br>
${l[1] }<br>
${l[2] }<br>
</body>
</html>

  

【补充】

转义的使用-数组的使用-禁用EL的方法

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EL2</title>
</head>
<body> <% request.setAttribute("userName","Anner"); %> <p>转义如何使用</p>
${10+2 }<br>
\${10+2 }<br> ${requestScope.userName }<br>
\${requestScope.userName }<br> <p>数组的使用</p>
<%
String [] str={"上海","南京","重庆","西安"};
request.setAttribute("str",str);
%>
${str[0] }<br>
${str['1'] }<br>
${str["2"] }<br>
\${str[3] }<br> <p>设定页面不适用EL,当使用其他与EL冲突的技术,可以这样做!</p>
<p>方法1:<%@ page isELIgnored="false" %> page指令设置为true</p>
<p>方法2:xml配置</p> </body>
</html>

  

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config> </web-app>

  【】

EL表达式Expression Language的更多相关文章

  1. EL(Expression Language)表达式语言

    EL(Expression Language)表达式语言 EL的基本语法是以${开始,以}结束 为了能够方便地输出数据,EL提供了11个内置对象,其中 2个内置对象为了方便输出请求参数 param用来 ...

  2. EL表达式(Exprission language)

    EL介绍 Expressive Language, JSP2.0引入,简化jsp开发中对对象的引用,(可以直接读取对象的属性,不需要像之前java脚本那样去做,比较繁琐),使得访问存储在JavaBea ...

  3. EL(Expression Language)和JSTL标签(JSP Standard Tag Library)

    一.EL表达式: Expression Language提供了在 JSP 脚本编制元素范围外(例如:脚本标签)使用运行时表达式的功能.脚本编制元素是指页面中能够用于在JSP 文件中嵌入 Java代码的 ...

  4. 11 JSP/EL表达式/EL函数

    JSP      * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行      * JSP的运行原 ...

  5. EL表达式与JSTL(C)标签

    一.EL表达式: Expression Language提供了在 JSP 脚本编制元素范围外(例如:脚本标签)使用运行时表达式的功能.脚本编制元素是指页面中能够用于在JSP 文件中嵌入 Java 代码 ...

  6. 一、jsp和Servlet基础理论及jstl和EL表达式用法

    1.题外话:使用JSP有近一年半的时间了,但是开发量不大.昨天部门突然让做个读取EXCLE文件,然后在前台页面进行展示.并通过点击查看按钮可以对每条明细记录进行跳转后进行详情查看,并按照页面原型进行页 ...

  7. 2.EL表达式&JSTL标签库常用方法

    1.EL表达式 Expression Language表达式语言,主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出. 格式为${表达式} EL表达式输出Bean的普通属性.数组属性.Li ...

  8. 第 13 章 剖析el表达式

    13.1. 再谈el(Expression Language) 我们已经知道el是jsp-2.0规范的一部分,tomcat-5.x版本以上都已经能够支持jsp-2.0规范,但在更低版本的tomcat和 ...

  9. EL表达式与JSTL

    内容包括 EL表达式 EL函数库 JSTL 核心标签库 格式化标签库 SQL标签库 XML标签库 自定义标签库 EL表达式 EL是Expression Language的是缩写,是JSP页面编写的一种 ...

随机推荐

  1. [POJ1015]Jury Compromise

    题目大意:要求你从n个人中选出m个,每个人有两个值p[i],D[i],要求选出的人p总和与D总和的差值最小.若有相同解,则输出p总+D总最大的方案. 动态规划. 一直在想到底是n枚举外面还是m放外面, ...

  2. 解决eclipse报PermGen space内存溢出异常的问题

    异常问题如下所示: 1.点击Eclipse->Window->Preferences,如下所示: 2.点击Server->Runtime Environments,选择Apache ...

  3. 解决:未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”

    使用nuget管理程序包,有可能在不同时间安装不同版本的Entity Framework:在项目创建初期安装的是6.0.0.0版本,后来添加的类库,安装了6.1.1版本,所以出现这个问题. 解决办法: ...

  4. ArrayList和Vector以及synchronizedList

    ArrayList和Vector都是使用数组方式存储数据 区别大概就是Vector本身所有方法都是用synchronized修饰的,所以线程安全,而ArrayList没有 还有一个区别就是新增元素的时 ...

  5. UVa1161 Objective: Berlin(最大流)

    题目 Source https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...

  6. ural 1147. Shaping Regions

    1147. Shaping Regions Time limit: 0.5 secondMemory limit: 64 MB N opaque rectangles (1 ≤ N ≤ 1000) o ...

  7. H

    很爽的一局,打了70分钟,还刷新了我的最高击杀记录.打完出来一看居然是H局,第一次在H局里打出不错的表现诶.好像找人说一说,可惜并没有谁听,以前的朋友也不在了,还是算了,自己心里慢慢发霉去吧. 这局末 ...

  8. flexbox布局的兼容性

    http://ayqy.net/blog/flexbox布局的兼容性/ 写在前面 flex布局早在2009年就有了,而现在是2015年6月8日,使用最新的flex语法会发现支持程度并不好,即使是在“高 ...

  9. ACM 关于521

    关于521 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 Acm队的流年对数学的研究不是很透彻,但是固执的他还是想一头扎进去. 浏览网页的流年忽然看到了网上有人用玫 ...

  10. 使用ajax和history.pushState无刷新改变页面URL

    表现 如果你使用chrome或者firefox等浏览器访问本博客.github.com.plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发 ...