表达式语言

表达式语言(Expression Language,EL)

  JSP2.0新增的特性,它是一种可以在JSP页面中使用的数据访问语言。

  主要目标是使动态网页的设计、开发和维护更加容易。网页编写者不必懂得Java编程语言,也可以编写JSP页面。

  EL具有自己的运算符、语法和保留字。

表达式语言的调用

  使用形式:${expression}

    以$开头,后面是一对大括号,括号里面是合法的EL表达式。

  出现位置:

    可以出现在JSP页面的模板文本中,也可以出现在JSP标签的属性值中,只要属性允许常规的JSP表达式即可。

    在JSP模板文本中使用EL表达式:

  <ul>
        <li>学号:${student.id }</li>
        <li>姓名:${student.name }</li>
   </ul>

    在标准动作的属性中使用EL表达式:

  <jsp:include page="${expression1 }"/>
   <c:out value="${expression2 }"/> 

 

 

 

 表达式语言的功能

  1、提供一组简单的运算符。

    可以完成算术、关系、逻辑、条件和空值检查运算。

  2、对作用域变量的方便访问。

    PageContext、HttpServletRequest、HttpSession和ServletContext

  3、对JavaBeans对象访问的简单表示。  

  <jsp:getProperty property="name" name="student"/>
   ${student.name }

   4、对集合元素的简单访问。

    ${variable[indexOrKey]   数组、List对象、Map对象等。

  5、对请求参数、Cookie和其他请求数据的简单访问。

    访问Accept请求头:${header.Accept}

  6、提供了在EL中使用Java函数的功能。

    EL中不能定义和使用变量,也不能调用方法,但可以通过标签的形式使用Java语言定义的函数。

 

使用EL运算符

  EL作为一种简单的数据访问语言,提供了一套运算符,这些运算符与Java语言中使用的运算符类似,但在某些细节上有些不同。

  1、算术运算符

    '/' ---- div

    '%' ---- mod

    ${"16" * 4} 结果为64,字符串被转换成整数。

    ${a / 4} 结果为0.0,a没有定义,它的默认值为0.

    ${"a" / 4} 将产生编译错误,字符串"a"不能和整数运算。

  2、关系与逻辑运算符

    "==" ---- eq 相等

    "!=" ---- ne 不相等

    "<" ---- lt 小于

    ">" ---- gt 大于

    "<=" ---- le 小于等于

    ">=" ---- ge 大于等于

 

    && ---- and 逻辑与

    || ---- or 逻辑或

    ! ---- not 逻辑非

  3、条件运算符

    expression ? expression1 : expression2

  4、empty运算符

    ${empty expression} 空则为True。

  5、属性与集合元素访问运算符

    点号(.)运算符:${param.username}

    方括号([])运算符:${param["username"]}

    区别:点号方便,方括号强大(有时候键或值有其它特殊字符是点号访问不了)。

 

访问作用域变量

  在Servlet中使用setAttribute()将一个变量存储到某个作用域对象上(HttpServletRequest、HttpSession及ServletContext),然后使用RequestDispatcher对象的forword()将请求转发到JSP页面。

  使用EL表达式:${variable_name}

  对该表达式,容器将依次在页面作用域、请求作用域、会话作用域和应用作用域中查找名为variable_name的属性。如果找到该属性,就调用它的toString()并返回属性值。如果没有找到,则返回空字符串。

  若在不同的作用域中存储了变量名相同的变量,则可以在变量名前加上作用域的名称:${HttpSession.variable_name}

 

posted @ 2017-03-25 11:08  止水、三千  阅读(311)  评论(0)    收藏  举报