首页 > 其他 > 详细

EL表达式

时间:2019-05-23 20:25:43      阅读:80      评论:0      收藏:0      [点我收藏+]

*EL表达式介绍及作用

获取数据

  EXpression Language(表达式语言),主要是替换JSP页面中的脚本表达式,以从各种类型的web域中检索Java对象、获取数据。(某个web域中的对象、访问JavaBean的属性、访问list集合、访问map集合、访问数组)

获取web开发常用对象

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

调用Java方法

  # EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

*EL表达式语法:

  ${变量名}

EL用法

1.EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应的对象,找不到则返回""(注意,不是null,而是空字符串)。EL表达式${XXX}会先看XXX是不是EL表达式的隐式对象,是就直接返回隐式对象的引用,不是就翻译成pageContext.findAttribute("XXX")。

2.EL表达式也可以很轻松获取JavaBean的属性,或获取数组,Collection、Map类型集合的数据,例如:

  ${user.address.city}

  ${user.list[0] }:访问有序集合某个位置的元素。

  ${map.key}:获得map集合中指定key的值。

3.集合JSTL的foreach标签,使用EL表达式也可以很轻松迭代各种类型的数组或集合,示例:

  #迭代数组

  #迭代Collection类型集合

  #迭代map类型集合

<%@page import="com.yyz.Address"%>
<%@page import="com.yyz.Person"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>el表达式获取数据示例</title> 
  </head>
  <body>
     <% 
        request.setAttribute("name","aaa");
    %>
     ${name }  <%--pageContext.findAttribute("name") --%>
    
    <br/><hr><br/>
     <!-- 在jsp页面中,使用el表达式可以获取bean的属性 -->
    <% 
        Person p = new Person();
        p.setAge(12);
        request.setAttribute("person",p);
    %>
    ${person.age }

    <br/><hr><br/>
    <!-- 在jsp页面中,使用el表达式可以获取bean中的bean(中的bean。。。)的属性 -->
    <% 
        Person person = new Person();
        Address address = new Address();
        person.setAddress(address);
        request.setAttribute("person",person);
    %>
   ${person.address.name }
    
    <br/><hr><br/>
    <!-- 在jsp页面中,使用el表达式获取list集合中指定位置的数据 -->
    <% 
        Person p1 = new Person();
        p1.setName("aa111");
        Person p2 = new Person();
        p2.setName("bb");
        List list = new ArrayList();
        list.add(p1);
        list.add(p2);
        request.setAttribute("list",list);
    %>
    ${list[1].name }  <!-- 取list指定位置的数据 -->
     <!-- 迭代集合 -->
    <c:forEach var="person" items="${list}">
        ${person.name }
    </c:forEach>
    
   <br/><hr><br/>
   <!-- 在jsp页面中,使用el表达式获取map集合的数据 -->
    <% 
        Map map = new HashMap();
        map.put("a","aaaaxxx");
        map.put("b","bbbb");
        map.put("c","cccc");
        map.put("1","aaaa1111");
        request.setAttribute("map",map);
    %>
    ${map.c }  <!-- 根据关键字取map集合的数据 -->
      ${map["1"] }<!-- 如果Map的关键字是一个数字,则用点运算符搞不定,点运算符搞不定的用中括号运算符 -->
    <c:forEach var="me" items="${map}">
          ${me.key }=${me.value }<br/>
      </c:forEach>
    <br/><hr><br/>
   </body>
</html>

  

 

EL表达式

原文:https://www.cnblogs.com/xjs1874704478/p/10914244.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!