Jsp---EL表达式

EL表达式简介
EL 全名为Expression Language。EL主要作用:
获取数据:
EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的java对象中获取数据。
执行运算:
利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。
获取web开发常用对象
EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
调用Java方法
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

  • 获取数据
    使用EL表达式获取数据语法:“${标识符}”
    EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
    示例: userELJavaBeanCollectionMap {user.address.city}
    user.list[0]访 {map.key} : 获得map集合中指定key的值
    结合JSTL的foreach标签,使用EL表达式也可以很轻松迭代各种类型的数组或集合,示例:
    迭代数组
    迭代collection类型集合
    迭代map类型集合

empty运算符:检查变量是否为null或“空”,很好用!!!
二元表达式: user!=null?user.name:[]. {运算表达式},EL表达式支持如下运算符:

获得web开发常用对象
例子:
index.jsp

<%@page import="cn.hncu.elWeb.domain.User"%>
<%@page import="javax.jws.soap.SOAPBinding.Use"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

  </head>

  <body>
   <h2>演示EL表达式技术---格式:${表达式} </h2>
     <h2>注意,EL表达式的功能:按小到大的顺序依次从4个容器中读取数据(如果读到则后面的容器跳过相当于pageContext.findAttribute()),※数据必须要放在容器中</h2>
     <% pageContext.setAttribute("pageName", "page_Tom");
        request.setAttribute("reqName", "req_Tom");
        session.setAttribute("sessName", "session_Tom");
        application.setAttribute("appName", "application_Tom");
      %>
      ${pageName},${reqName},${sessName},${appName}<br/>
     <hr/><br/><br/>
     <!-- 用EL表达式读取JavaBean中的信息,注意“表达式”是“属性名” -->
     <%
        User user=new User();
        user.setAge(20);
        user.setName("Jack");
        request.setAttribute("user", user);

      %>
     ${user}<br/>
     ${user.name} ,${user.age}
      <hr/><br/><br/>
     <!-- 用EL表达式读取Map中的信息 -->
     <%
        Map<String ,Object> map=new HashMap<String,Object>();
        map.put("name", "Rose");
        map.put("age", 30);
        map.put("tel", "13333333");
        map.put("friend", user);
        pageContext.setAttribute("m", map, pageContext.PAGE_SCOPE);
      %>
      ${m}<br/>
      姓名:${m.name }
      男朋友${m.friend.name}
       <hr/><br/><br/>
     <!-- 用EL表达式读取List中的信息 -->
     <%
        List list=new ArrayList();
        list.add("aaa");
        list.add(user);
        list.add(map);
         session.setAttribute("list", list);
      %>
      ${list}<br/>
      ${list[0]},,${list[1].name},$男朋友:::${list[2].friend.name}
       <!-- 演示EL表达式中的运算 -->   
      1 可以使用算术运算符: + - *  /  % 等 <br/>
      ${user.age*10}<br/>

    2 可以使用比较运算符: ==  !=  < =  >  >= 等 <br/>
      ${user.name=="Jack"}<br/>

     ${user.age >= 20 }<br/>
    3 逻辑运算符: &&   ||   !(非) 等 <br/>
    ${user.name=="Jack" && user.age>19 }<br/>

    4 条件运算符: 即“?”号表达式 <br/>
    ${user.name=="Jack" ? 100: 50 }<br/>

    5 empty运算符: 如果表达式的值为null  或者  不存在该变量  或者  是一个List或Map但其中不包含元素  ---这些返回的都是true <br/>
    ${empty dk }   ---true
    ${empty m}  ---true
    ${empty user}    ---false
    ${empty list}   ---true

      <hr/><br/><br/>
    <!-- 用EL表达式获取EL表达式中的隐藏对象--EL表达式语言中定义了11个隐含对象  -->
    <!-- 从指定的容器中读取数据 -->
    ${pageScope.m}<br/>
    ${requestScope.user}<br/>
     ${sessionScope.list}<br/>
    <%--  ${applicationScope} --%>
    ${param}//演示访问地址:http://localhost:8080/elWeb/?name=Jack&age=21<br/>
    ${param.name}<br/>
    ${paramValues}<br/>
    ${paramValues.name[0]}<br/>
    ${header}<br/>
     ${header.host}<br/>
    ${header.cookie}<br/>
    ${cookie.JSESSIONID.value }
    <br/>
    <a href="${pageContext.request.contextPath}/jsps/aa.jsp"> 跳到另一个页面</a>

    <br/><br/>
    <a href="${pageContext.request.contextPath}/ShowServlet"> el使用的综合示例页面 </a>

    <br/><br/><br/><br/>
      </body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值