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>
代码运行结果:
相关文章推荐
- Bootstrap系列 -- 13. 内联表单
- 分页查询
- YUV格式注释
- 【转】IOS性能调优系列:Analyze静态分析
- Thrift之TProtocol系列TBinaryProtocol解析
- LeetCode 141. Linked List Cycle
- [原创]使用Spring的HibernateDaoSupport实现BaseDaoImpl类
- linux常用命令
- OC11_真正的代理
- 【Web缓存机制系列】6 – 进击的Hybrid App,量身定做缓存机制
- RecyclerView的基本使用
- 3-40
- Eclipse折叠代码 coffee bytes code folding
- LeetCode 171. Excel Sheet Column Number
- android 学习网址
- 1009. 说反话 (20)
- Bootstrap系列 -- 12. 水平表单
- Spring事务管理
- MulticastDelegate
- LeetCode 191. Number of 1 Bits