Javaweb学习笔记——EL表达式

一、前言

EL表达式是什么?

简而言之,可以这样理解,EL表达式全名为:Exprexxsion Language,原先是JSTL 1.0为了方便存取数据而定义的语言,到了JSTL 2.0便正式成为标准之一。EL表达式的引入可以简化jsp页面中的java代码,方便存取数据等优点。提供了表示层和应用程序通信的一种机制

EL表达式的作用有:

1、获取数据

  EL表达式替换jsp页面中的java代码,可以从各种类型的WEB域对象中检索java对象,获取数据,

2、执行运算

  EL表达式支持逻辑运算和算术运算,可在jsp页面进行简单的运算功能,如${1+1}

3、获取WEB开发常用对象

  EL表达式定义一些隐式对象,利用这些隐式对象,开发人员可以轻松获得web对象的引用,从而获得对象的数据

4、调用java方法

  EL表达式运行用户自定义EL函数,可在java通过表达式调用函数

1.1、获取数据

  使用EL表达式的语法为:${标识符}

  EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。

  EL表达式可以获取javaBean对象的属性,数组,Collection,Map类型集合的数据

EL常用语法:

<%@page import="java.util.Map"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="com.el.tag.Person"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>el表达式</title>
</head>
<body>
    <%
        request.setAttribute("name", "升少");
    %>
    <!--${name}等于pageContext.findAttribute("name");  -->
    使用EL表达式获取数据:${name }
    <br/>
    <!--获取javabean对象中的数据  -->
    <%
        //JavaBean
        Person p = new Person();
        p.setUname("张三");
        request.setAttribute("person", p);
    %>
    使用EL表达式获取Bean对象的数据:${person.uname }
    <br/>
    
    <!--获取特定对象的数据  -->
    <%
        Person p1 = new Person();
        p1.setUname("李四");
        
        Person p2 = new Person();
        p2.setUname("王五");
        
        ArrayList list = new ArrayList();
        list.add(p1);
        list.add(p2);
        
        request.setAttribute("list", list);
    %>
    <!--获取list对象特定的数据  -->
    list集合的值为:${requestScope.list[0].uname }
    <br/>
    
    <!--循环集合  -->
    循环集合产生的值:<br/>
    <c:forEach var="items" items="${list }">
        ${items.uname }<br/>
    </c:forEach>
    <br/>
    
    <!--在jsp页面中,使用map集合 -->
    在jsp页面使用map集合
    <%
        Map<String,String> map = new HashMap<String,String>();
        map.put("1", "值1");
        map.put("ccc", "值2");
        map.put("3", "值3");
        map.put("4", "值4");
        request.setAttribute("map", map);
    %>
    <!--注意:数字是特殊字符 ,不能用逗号点出数据 -->
     使用el表达式读取map集合的数据:${map["1"]}与——>${map.ccc }
    <br/>
    
    <br/>
    <!--循环map集合对象  -->
    <c:forEach var="maps" items="${map }">
        ${maps.key }=${maps.value }<br/>
    </c:forEach>
    <br/>
</body>
</html>

效果为:

 

posted @ 2016-10-14 20:56  书升  阅读(519)  评论(0编辑  收藏  举报