低调人的gravatar头像
低调人 2018-04-03 13:24:25
EL表达式

EL表达式简介:

全称Expression Language

EL表达式是JSP2.0(JavaEE 1.4)规范中的一门技术。在JavaEE1.4之下使用EL表达式,需要设置page属性

<%@ page isELIgnored="false" %>

作用:最基本的替换掉JSP页面中的脚本表达式( <%=> )

  • 获取数据

语法:${标识符} 例如${2 + 1}

注意:EL表达式只能用来获取域中的属性不能用来设置属性;只能获取指定数据不能进行迭代

  • 获取域中的属性

EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” ,不是null

实例:

<body>

  <% pageContext.setAttribute("name", "zhang"); %>

   ${name } <!--页面中显示zhang-->

   ${nameX} <!--页面中显示空白,但又空字符-->

</body>
  • 获取数组中的属性

示例:

 

<body>
  	<% 
  		int[] arr = {22,45,34}; 
  		pageContext.setAttribute("arr", arr);
  	%>
  	${arr[0] }  <!--页面中显示22-->
        ${arr[4] }  <!--页面显示空白,即空字符,不会报错-->
</body>
 
  • 获取集合中的属性

示例一:从list集合获取

 

<body>
  	<%
  		List list = new ArrayList();
  		list.add("haha");
  		list.add("hehe");
  		list.add("haha");
  		pageContext.setAttribute("list", list);
  	 %>
  	 ${list[2]}   <!--页面显示haha-->
  </body>

 

示例二:从map集合获取

 

<body>
  	<%
  		Map<String, String> map = new HashMap<String, String>();
  		map.put("a1001", "张三");
  		map.put("a1002", "李四");
  		map.put("a10-03", "王五");
  		pageContext.setAttribute("map", map);
  	 %>
  	 ${map["a1001"] }   <!--显示张三-->
  	 ${map.a1002 }      <!--显示李四-->
     ${map["a10-03"]}   <!--显示王五-->
     ${map.a10-03}      <!--会出错,抛异常-->
  </body>

 

.和[]的区别:除了中括号中是数字或者特殊字符的情况,都可以用.替代

  • 获取JavaBean中的属性,直接用.属性名,不能用.getXxx,并且JavaBean中必须同时有get、set方法,否则无法取值
<body>
   	<%
   		Person p = new Person();
   		p.setName("zhangsan");
   		pageContext.setAttribute("p", p);
   	 %>
   	 ${p.name }             <!--显示zhangsan-->
</body>
  • 获取路径

<a href="${pageContext.request.contextPath }/el/elTest.jsp" >超链接</a>

 

  • 执行运算

运算符

说明

范例

结果

+

${17+5}

22

-

${17-5}

12

*

${17*5}

85

/或div

${17/5}或${17 div 5}

3

%或mod

取余

${17%5}或${17 mod 5}

2

==或eq

等于

${5==5}或${5 eq 5}

true

!=或ne

不等于

${5!=5}或${5 ne 5}

false

<或lt

小于

${3<5}或${3 lt 5}

true

>或gt

大于

${3>5}或${3 gt 5}

false

<=或le

小于等于

${3<=5}或${3 le 5}

true

>=或ge

大于等于

${3>=5}或${3 ge 5}

false

&&或and

并且

${true&&false}或${true and false}

false

!或not

${!true}或${not true}

false

||或or

或者

${true||false}或${true or false}

true

empty

是否为空

${empty “”},可以判断字符串、数据、集合的长度是否为0,为0返回true。empty还可以与not或!一起使用。${empty “”}

${empty null}

true

三元表达式

 

 ${empty map ? "haha" : "hehe" }

hehe

  • 获取常用的web开发对象

EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。

语法:${隐式对象名称}  :获得对象的引用

隐含对象名称

描       述

pageContext

对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)

pageScope

代表page域中用于保存属性的Map对象

requestScope

代表request域中用于保存属性的Map对象

sessionScope

代表session域中用于保存属性的Map对象

applicationScope

代表application域中用于保存属性的Map对象

 

<body>
   	<a href="${pageContext.request.contextPath }/el/elTest.jsp" >超链接</a>
   	<% 
   		pageContext.setAttribute("name", "itheima");
   		request.setAttribute("name", "itcast"); 
   		session.setAttribute("name", "csdn");
   	%>
   	${requestScope.name }                 <!--显示itcast-->
   	${sessionScope.name }                 <!--显示csdn-->
  </body>

隐含对象名称

描       述

param

表示一个保存了所有请求参数的Map对象

地址栏输出:

http://localhost/jsp/index.jsp?username=zhangsan&psw=123

 <body>

    ${param.username }            页面显示zhangsan

    ${param.password }            页面显示123

  </body>

paramValues

paramValues是Map<String, String[]>类型,当一个参数名,对应多个参数值时可以使用它。

EL表达式

header

表示一个保存了所有http请求头字段的Map对象

${header.Host }          页面显示localhost

headerValues

同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]

cookie

cookie是Map<String,Cookie>类型,其中key是Cookie的名字,而值是Cookie对象本身。

${cookie.JSESSIONID.value }

 EL表达式

initParam

Map<String,String>类型。它对应web.xml文件中的<context-param>参数。

 EL表达式

 


打赏

已有2人打赏

已注销用户的gravatar头像 最代码官方的gravatar头像
最近浏览
已注销用户  LV34 2020年4月1日
乌兹永远滴神  LV6 2019年9月27日
2252536772  LV21 2019年9月10日
liyang155  LV1 2019年7月4日
手扶摘星 2019年6月10日
暂无贡献等级
时至秋雨  LV6 2019年6月4日
hohahei  LV4 2018年12月31日
景哥GG 2018年12月25日
暂无贡献等级
茫茫人海中的小牛  LV10 2018年12月10日
851405506  LV7 2018年11月14日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友