您的位置:首页 > 编程语言 > Java开发

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的内置对象
EL内置对象描述
pageContextjavax.servlet.jsp.PageContext对象
pageScope从page属性范围查找输出属性
requestScope从request属性范围查找输出属性
sessionScope从session属性范围查找输出属性
applicationScope从application属性范围查找输出属性
param接收传递到本页的一个参数
paramValues接收传递到本页的一组参数
header取得一个头信息
headerValues取得一组头信息
cookie取得cookie中的数据
initParam取得初始化参数
访问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中,出了可以采用“.”的形式访问之外,还可以采用“[]”的形式访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: