14.JavaWeb基础 EL(表达式语言)
2014-08-14 16:09
417 查看
一.EL简介
表达式语言(Expression Language,EL)。使用表达式语言,可以方便地访问标志位
(pageContext、request、session、application)中的属性内容,这样可以避免出
现更多的Script代码,其语法如下:
${属性名称}
使用EL最大的特点就是:如果输出内容是null,则会自动使用空字符串("")表示:
<body>
<h3>内置对象:<%=request.getAttribute("CaMnter")%></h3>
<h3>EL:${CaMnter }</h3>
</body>
简单输出:
<body>
<%
request.setAttribute("CaMnter", "Save you from anything 07");
%>
<h3>${CaMnter }</h3>
</body>
二.EL的内置对象
EL的内置对象
访问4种属性:
<body>
<%
pageContext.setAttribute("CaMnter", "page_Save you from anything 07") ;
request.setAttribute("CaMnter", "request_Save you from anything 07");
session.setAttribute("CaMnter", "session_Save you from anything 07");
application.setAttribute("CaMnter", "application_Save you from anything 07");
%>
<h3>page:${pageScope.CaMnter }</h3>
<h3>request:${requestScope.CaMnter }</h3>
<h3>session:${sessionScope.CaMnter }</h3>
<h3>application:${applicationScope.CaMnter }</h3>
</body>
调用内置对象操作:
使用pageContext可以取得request、session、application的实例。
<body>
<h3>IP:${pageContext.request.remoteAddr }</h3>
<h3>Session ID:${pageContext.session.id }</h3>
</body>
接收请求一个参数:
<body>
<h3>request.getParameter():<%=request.getParameter("CaMnter")%></h3>
<h3>EL:${param.CaMnter}</h3>
</body>
地址栏重写即可:
接收请求一组参数:
el_1.html:
<!DOCTYPE html>
<html>
<head>
<title>el_1.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<form action="../jsp/el_5.jsp" method="post">
<input type="checkbox" name="inst" value="red">红
<input type="checkbox" name="inst" value="green">绿
<input type="checkbox" name="inst" value="blue">蓝
<input type="submit" value="提交">
</form>
</body>
</html>
el_5.jsp:
<body>
<%
request.setCharacterEncoding("UTF-8") ;
%>
<h3>第一个:${paramValues.inst[0]}</h3>
<h3>第二个:${paramValues.inst[1]}</h3>
<h3>第三个:${paramValues.inst[2]}</h3>
</body>
三.EL的集合操作
List:
<body>
<%
List list = new ArrayList() ;
list.add("CaMnter") ;
list.add("Save you from anything 07") ;
request.setAttribute("info", list) ;
%>
<h3>第一个:${requestScope.info[0]}</h3>
<h3>第二个:${requestScope.info[1]}</h3>
</body>
Map:
<body>
<%
Map map = new HashMap() ;
map.put("name", "CaMnter") ;
map.put("age", 18) ;
request.setAttribute("info", map) ;
%>
<h3>第一个:${requestScope.info["name"]}</h3>
<h3>第一个:${requestScope.info.name}</h3>
<h3>第二个:${requestScope.info["age"]}</h3>
</body>
由Map例子,可以看出 ${requestScope.info["name"]} == ${requestScope.info.name}
这说明了在EL中,出了可以采用“.”的形式访问之外,还可以采用“[]”的形式访问。
表达式语言(Expression Language,EL)。使用表达式语言,可以方便地访问标志位
(pageContext、request、session、application)中的属性内容,这样可以避免出
现更多的Script代码,其语法如下:
${属性名称}
使用EL最大的特点就是:如果输出内容是null,则会自动使用空字符串("")表示:
<body>
<h3>内置对象:<%=request.getAttribute("CaMnter")%></h3>
<h3>EL:${CaMnter }</h3>
</body>
简单输出:
<body>
<%
request.setAttribute("CaMnter", "Save you from anything 07");
%>
<h3>${CaMnter }</h3>
</body>
二.EL的内置对象
EL内置对象 | 描述 |
pageContext | javax.servlet.jsp.PageContext对象 |
pageScope | 从page属性范围查找输出属性 |
requestScope | 从request属性范围查找输出属性 |
sessionScope | 从session属性范围查找输出属性 |
applicationScope | 从application属性范围查找输出属性 |
param | 接收传递到本页的一个参数 |
paramValues | 接收传递到本页的一组参数 |
header | 取得一个头信息 |
headerValues | 取得一组头信息 |
cookie | 取得cookie中的数据 |
initParam | 取得初始化参数 |
<body>
<%
pageContext.setAttribute("CaMnter", "page_Save you from anything 07") ;
request.setAttribute("CaMnter", "request_Save you from anything 07");
session.setAttribute("CaMnter", "session_Save you from anything 07");
application.setAttribute("CaMnter", "application_Save you from anything 07");
%>
<h3>page:${pageScope.CaMnter }</h3>
<h3>request:${requestScope.CaMnter }</h3>
<h3>session:${sessionScope.CaMnter }</h3>
<h3>application:${applicationScope.CaMnter }</h3>
</body>
调用内置对象操作:
使用pageContext可以取得request、session、application的实例。
<body>
<h3>IP:${pageContext.request.remoteAddr }</h3>
<h3>Session ID:${pageContext.session.id }</h3>
</body>
接收请求一个参数:
<body>
<h3>request.getParameter():<%=request.getParameter("CaMnter")%></h3>
<h3>EL:${param.CaMnter}</h3>
</body>
地址栏重写即可:
接收请求一组参数:
el_1.html:
<!DOCTYPE html>
<html>
<head>
<title>el_1.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<form action="../jsp/el_5.jsp" method="post">
<input type="checkbox" name="inst" value="red">红
<input type="checkbox" name="inst" value="green">绿
<input type="checkbox" name="inst" value="blue">蓝
<input type="submit" value="提交">
</form>
</body>
</html>
el_5.jsp:
<body>
<%
request.setCharacterEncoding("UTF-8") ;
%>
<h3>第一个:${paramValues.inst[0]}</h3>
<h3>第二个:${paramValues.inst[1]}</h3>
<h3>第三个:${paramValues.inst[2]}</h3>
</body>
三.EL的集合操作
List:
<body>
<%
List list = new ArrayList() ;
list.add("CaMnter") ;
list.add("Save you from anything 07") ;
request.setAttribute("info", list) ;
%>
<h3>第一个:${requestScope.info[0]}</h3>
<h3>第二个:${requestScope.info[1]}</h3>
</body>
Map:
<body>
<%
Map map = new HashMap() ;
map.put("name", "CaMnter") ;
map.put("age", 18) ;
request.setAttribute("info", map) ;
%>
<h3>第一个:${requestScope.info["name"]}</h3>
<h3>第一个:${requestScope.info.name}</h3>
<h3>第二个:${requestScope.info["age"]}</h3>
</body>
由Map例子,可以看出 ${requestScope.info["name"]} == ${requestScope.info.name}
这说明了在EL中,出了可以采用“.”的形式访问之外,还可以采用“[]”的形式访问。
相关文章推荐
- Java Web中的EL(表达式语言)详解
- Java Web----EL(表达式语言)详解
- Java web----EL(表达式语言)
- javaWeb之表达式语言EL
- Java Web----EL(表达式语言)详解
- 传智播客Java web之 JSP基础之EL表达式注释以及错误查找
- 10019---JavaWeb基础--EL
- java web进阶篇(三) 表达式语言
- Java_Web三大框架之Hibernate+HQL语言基础
- Java语言基础-4.运算符与表达式
- [JavaWeb基础] 029.OGNL表达式介绍
- 黑马程序员-Java语言基础–正则表达式 第25天
- 【Java.Web】JSP —— EL —— 基础
- Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
- 磨刀不误砍材工 - Java的基础语言要素(运算符和表达式的应用)
- Java基础14----正则表达式、Math类、System类、BigInteger、日期类
- 介绍JavaServer Faces 表达式语言(JSF EL)
- 01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)
- Java Web 自定义标签 JSTL及EL语言
- 传智播客Java web之 JSP基础之模板与表达式