您的位置:首页 > 其它

EL(表达式语言)的使用

2015-06-24 20:54 483 查看

EL(表达式语言)的使用

一、EL概述

  EL(Expression Language)叫做表达式语言,它是JSP2.0新增的技术规范。EL的设计主要目的是简化页面输出,它能够完美替代传统JSP中的输出表达式<%= %>,并且还能以更自然的方式输出JavaBean的属性信息。下面是几个EL输出的简单例子:

EL版的“Hello World”

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
${"Hello World!"}
</body>
</html>


EL版的输出变量

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
String s="欢迎来到EL的世界";
request.setAttribute("msg",s);
%>
${msg}
</body>
</html>


二、EL的运算符

EL提供以下运算符操作:



值得注意的是:

1)对于加减法运算符,当参与运算的操作符为字符串,运行时都将自动转换成数值型,如富哦不能被解析为数值型,则抛出异常;

2)表达式${3/0},在运算时不会抛出异常,而是显示infinity;

3)表达式${3/4},结果为0.75;

4)空运算符(empty)用来判断参数是不是null、空字符、空数组、空Map或者空集合,如果是则返回true,否则返回false.

${empty null}   结果:true


三、EL中的“.”操作符和“[ ]”操作符

1、“.”操作符

  “.”操作符的操作对象主要是映射类型Map和JavaBean类型,对于映射类型(Map),可以通过键值形式访问到;对于JavaBean类型,可以通过属性名的形式访问。

“.”操作符输出Map类型对象的信息

<%@page import="java.util.HashMap"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>使用“.”操作符输出Map类型对象的信息</h1>
<%
HashMap fruitMap=new HashMap();
fruitMap.put("f1","香蕉");
fruitMap.put("f2","苹果");
fruitMap.put("f3","哈密瓜");
request.setAttribute("fmap", fruitMap);
%>
第一种水果:${requestScope.fmap.f1}<hr/>
第二种水果:${requestScope.fmap.f2}<hr/>
第三种水果:${requestScope.fmap.f3}<hr/>
全部的水果:${requestScope.fmap}<hr/>
</body>
</html>


注:代码中requestScope指的是作用域,可在请求范围内查找某个属性对应的值。EL中,还有pageScope、sessionScope、applicationScope三种,分别表示在页面范围、在会话范围、在应用范围查找某个属性对应的值。

代码运行结果:



2、“[ ]”操作符

  如果从作用域中取出的对象不是映射类型Map或者JavaBean类型,那么“.”操作符就无能为力了,知识后就必须使用“[ ]”操作符,“[ ]”操作符操作更为灵活,不仅可以取出映射类型和JavaBean类型对象,还能操作数组类型对象和列表类型对象。

a.“[ ]”操作符输出Map类型对象的信息

<%@page import="java.util.HashMap"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>使用“[ ]”操作符输出Map类型对象的信息</h1>
<%
HashMap phoneMap=new HashMap();
phoneMap.put("p1","三星");
phoneMap.put("p2","苹果");
phoneMap.put("p3","小米");
request.setAttribute("pmap", phoneMap);
%>
第一种手机:${requestScope.pmap["p1"]}<hr/>
第二种手机:${requestScope.pmap["p2"]}<hr/>
第三种手机:${requestScope.pmap["p3"]}<hr/>
全部的手机:${requestScope.pmap}<hr/>
</body>
</html>


代码运行结果:



b.“[ ]”操作符输出数组类型对象的信息

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>使用“[ ]”操作符输出数组类型对象的信息</h1>
<%
String[] phone={"三星","苹果","小米"};
request.setAttribute("parray", phone);
%>
第一种手机:${requestScope.parray[0]}<hr/>
第二种手机:${requestScope.parray[1]}<hr/>
第三种手机:${requestScope.parray[2]}<hr/>
所有手机:${requestScope.parray}<hr/>
</body>
</html>


代码运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: