EL表达式

来源:互联网 发布:c语言课后题答案第四版 编辑:程序博客网 时间:2024/06/15 11:28

页面显示信息的方式:


1、 EL表达式,就是用来获取以下三种数据类型的信息

1:集合或是。

2:数组

3:Bean

所有的隐藏对象,全部的都是Map类型

 除了pageContext




一、EL表达式简介:

  

lEL(ExpressionLanguage)表达式,语言是在JSP2.0入的新特性,它用于在JSP文件中进行数据访问。即从各个域对像中取出数据用于显示。
•  如:${name}相当于<%=pageContext.getAttribute(“name”)%>
  lEL表达式,可以用来替代传统的基于<%=…%>的Java形式。
  lEL表达式,可以替代<jsp:getProperty…/>这样的jsp标签。
•如${person.name}
•相当于<jsp:getProperty name=“person” property=“name”/>
l

二:EL表达式语法:


lEL表达式的基本语法为:${var},所有的表达式,都以${开头,以}结尾。
l如果使用EL表达式如${name},它将会pageContext,request,session,application范围内依次查找,如果找到就将内容显示到页面上,如果没有就显示空字符串,这一点一定要区别与jsp:getProperty,在使用jsp:getProperty时,如果属性值为null,则会在页面上显示null的字符串,而EL表达式,在页面上显示空字符串。

三:EL表达式访问对像的属性及数组元素

EL表达式,可以使用.(点)来访问对像的属性,如:
${person.name}表示Person对像的name属性。
注意:EL表达式,不仅可以获取JavaBean的属性,还可以获取Map中的属性,使用方法一样,这一点显示了EL表达式的灵活之处。
如:
EL表达式,可以使用[…]来访问对像的属性,如:
${person[“name”]}表示Person对对象的name属性。
EL表达式,可以使用[idx]来访问数组的元素,如:
${person[0]}表示第一个person对象。


四:EL的运算符:

l算术运算符:+- * / %
l比较运算符:==、!=、<、>、<=、>=
l逻辑运算符:&&、||、!(取反)
lempty运算符:如${emptyname}如果name为null或空字符串,就返回true。
l条件运算符:${a?b:c},如:${16>5?16:5}
l
l关于empty的更多说明:
如果测试的某个变量不存在,即没有定义则返回true.
如果变量的值为null则返回true.
如果是一个List或Map,且此集合中不包含任何元素仍然为true.
可以使用${!empty var}进行取反操作


empty运算符

 <%

 Person person = new Person();

  pageContext.setAttribute("person",person);

 List<String> list = new ArrayList<String>();

  pageContext.setAttribute("list",list);

 Map<String,Object> map = newHashMap<String,Object>();

  pageContext.setAttribute("map",map);

 %>

${empty person}<br/><!--返回false,因为person是实例对像-->

${empty list}<br/><!--返回true,因为list没有数据-->

${empty map}<br/><!--返回true -->

${!empty map}<br/><!-- 返回false-->



五:EL的隐含对像



1.表示HTTP请求的特定数据:



2.表示特定范围:

${pageScope.name}<!--等价与pageContext.getAttribute("name") -->

<br/>

${requestScope.name}<!--等价与request.getAttribute("name") -->


以下是获取某个范畴中值:

<body>

    <%

       pageContext.setAttribute("name","Jack");

       pageContext.setAttribute("name","Rose",PageContext.REQUEST_SCOPE);

    %>

    <hr/>

    <%=pageContext.getAttribute("name",PageContext.REQUEST_SCOPE)%>

    <hr/>

    <!--相当于pageContext.findAttribute("name")如果找不到就返回""空串 -->

    ${name}

    <br/>

    <!--获取某个指定的数据,可以指定从哪儿取 -->

    ${requestScope['name']}

    <br/>

    ${requestScope.name


以下是用EL获取cookie的值

<body>

    ${cookie['JSESSIONID'].value}

    <br/>

    ${cookie.JSESSIONID['value']}


3:在EL中使用PageContext获取上下文




4.表示Web应用的初始化参数:



六:EL表达式的优点和不足: