Linux就该这么学
筱进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头像

分享到:

最近浏览
IT粑粑 LV19月14日
星星
付修立 LV38月31日
星星星星星星
快乐风男 LV48月27日
月亮
辉辉辉辉辉辉 LV88月22日
月亮月亮
badboy1979 LV118月13日
月亮月亮星星星星星星
率真的大师兄 LV68月10日
月亮星星星星
GuangBiao LV88月9日
月亮月亮
老中医 LV17月22日
星星
zyhzyh123 LV27月20日
星星星星
zlq19900 LV27月18日
星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友