JavaWeb学习之EL表达式

EL表达式:是为了简化jsp文件中编写Java代码

* 格式:${表达式 }

* EL表达式的使用

###1、 取出4个作用域中存放的值

<body>
    <%
        pageContext.setAttribute("name", "page");
        request.setAttribute("name", "request");
        session.setAttribute("name", "session");
        application.setAttribute("name", "application");
    %>

    按普通手段取值    <br>

    <%= pageContext.getAttribute("name")%><br />
    <%= request.getAttribute("name")%><br />
    <%= session.getAttribute("name")%><br />
    <%= application.getAttribute("name")%><br />

    <br>使用EL表达式取出作用域中的值    <br> 
    ${ pageScope.name } <br />
    ${ requestScope.name } <br />
    ${ sessionScope.name }<br />
    ${ applicationScope.name }<br />
</body>

结果:

 ###2、 如果域中所存的是数组、集合、Map集合

<body>
    <br>-------------数组数据----------------
    <br>
    <%
        String[] a = { "aa", "bb", "cc", "dd" };
        pageContext.setAttribute("array", a);
    %>

    使用EL表达式取出作用域中数组的值
    <br> ${array[0] } , ${array[1] },${array[2] },${array[3] }
    <br>

    <br>-------------集合数据----------------
    <br>
    <%
        List list = new ArrayList();
        list.add("li1");
        list.add("li2");
        list.add("li3");
        list.add("li4");
        list.add("li5");

        pageContext.setAttribute("li", list);
    %>

    使用EL表达式取出作用域中集合的值
    <br> ${li[0] } , ${li[1] },${li[2] },${li[3] }


    <br>-------------Map数据----------------
    <br>
    <%
        Map map = new HashMap();
        map.put("name", "zhangsna");
        map.put("age", 18);
        map.put("address", "北京..");
        map.put("address.aa", "深圳..");
        pageContext.setAttribute("map", map);
    %>

    使用EL表达式取出作用域中Map的值
    <br> ${map.name } , ${map.age } , ${map.address } ,
    ${map["address.aa"] }
</body>

结果:

  

 ###EL取值细节  

<body>
    <%
        pageContext.setAttribute("name", "page");
        request.setAttribute("name", "request");
        session.setAttribute("name", "session");
        application.setAttribute("name", "application");
    %>

    使用EL表达式取出作用域中的值
    <br>查找顺序:pageScope => requestScope => sessionScope =>applicationScope
    <br> ${ name }
</body>

结果:

  

##EL表达式 的11个内置对象

  - pageContext:ServletContext(一个工程只有一个上下文对象)
  作用域相关对象
    - pageScope:page作用域
    - requestScope:request作用域
    - sessionScope:session作用域
    - applicationScope:整个应用程序作用域
  头信息相关对象
    - header
    - headerValues
  参数信息相关对象
    - param
<%=request.getParameter("address") %>
    等同于
${param.address}

    - paramValues

    - cookie
  全局初始化参数
    - initParam
###EL应用补充(运算)
<body>
    <%
        pageContext.setAttribute("a", 1);
        pageContext.setAttribute("b", 2);

        pageContext.setAttribute("c", true);
        pageContext.setAttribute("d", false);
    %>

    ${ a > b }
    ${ a - b }
    ${ c && d }    
    ${ a > b ? a: b}
</body>
原文地址:https://www.cnblogs.com/WarBlog/p/12532246.html