筱进GG的gravatar头像
筱进GG2018-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表达式

 


打赏

已有1人打赏

最代码官方的gravatar头像

分享到:

最近浏览
851405506 LV711月14日
月亮星星星星星星
986871510 LV1111月9日
月亮月亮星星星星星星
huhuhhu LV210月12日
星星星星
蓝色幻想 LV210月5日
星星星星
IT粑粑 LV19月14日
星星
付修立 LV38月31日
星星星星星星
快乐风男 LV48月27日
月亮
辉辉辉辉辉辉 LV88月22日
月亮月亮
badboy1979 LV128月13日
月亮月亮月亮
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友