EL表达式

EL表达式:${要取的变量名} 通过此获取作用域对象的值

  1. 只能获取作用域对象的值

  2. 可以获取普通变量、list(通过下标)、map(.key)、对象(.属性名)的数据

    <%
        request.setAttribute("name", "张三");
        List list = new ArrayList();
        list.add("list-0");
        list.add("list-1");
        list.add("list-2");
    
        Map map = new HashMap();
        map.put("map1", "map1-1");
        map.put("map2", "map2-2");
        map.put("map3", "map3-3");
    
        Person person = new Person("对象", 20, "男");
    
        pageContext.setAttribute("list", list);
        pageContext.setAttribute("map", map);
        pageContext.setAttribute("person", person);
    %>
    
    <%--取值如下--%>
    ${name} 
    ${list}----------${list[0]}
    ${map}----------${map.map1}
    ${person}----------${person.age}

    访问该jsp页面如下:
    EL表达式_第1张图片

  3. EL表达式从各作用域对象取值的顺序

    默认从最小的作用域取值,JSP有4大作用域,从小到大依次为

    pageContext < request < session < application

  4. EL表达式取指定作用域的值,使用 pageScope requestScope sessionScope applicationScope

    pageContext.setAttribute("data","pageContext");
    request.setAttribute("data","request");
    session.setAttribute("data","session");
    application.setAttribute("data","application");
    
    // 取值如下
    ${data} 
    ${pageScope.data}
    ${requestScope.data}
    ${sessionScope.data}
    ${applicationScope.data}

    访问该jsp页面如下:
    EL表达式_第2张图片

  5. EL表达式除了去作用域中的值还可以获取请求参数中的值:使用param、paramValues参数

    ${param.参数名}
    ${paramValues.参数名[]}
    
  6. EL表达式可以做空值判断 使用empty,返回为字符串类型的true或false

    {empty 参数名}

  7. EL表达式除了通过".“取属性值,也可以通过”[]"取值

    {user[param.name]} param.name也是一个EL表达式,获取请求参数中name的值,再从user中获取

  8. EL表达式可以做简单的数学运算和逻辑判断

    ${5+4}

    ${5>4}

    ${scope > 85}

你可能感兴趣的:(网络编程)