Javaweb El表达式实例详解

EL全称 Expression Language(表达式语言),是jsp2.0最重要的特性之一,可以利用EL表达式来访问应用程序中的数据,来消除jsp页面中的java脚本。

el表达式的语法

expression例如x+y可以写成{x+y}

el中的关键字

以下是el中的关键字,他们不能用做标识符:

and,eq,gt,true,instanceof,or,ne,le,false,empty,not,lt,ge,null,div,mod

一、EL表达式简介

  EL 全名为Expression Language。EL主要作用:

  1、获取数据

    EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)

  2、执行运算

    利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}

  3、获取web开发常用对象

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

  4、调用Java方法

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

1.1、获取数据

  使用EL表达式获取数据语法:"${标识符}"

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

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

  el表达式获取数据范例:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-"%>

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@page import="me.gacl.domain.Person"%>

<%@page import="me.gacl.domain.Address"%>

<!DOCTYPE HTML>

<html>

<head>

<title>el表达式获取数据</title>

</head>

<body>

<%

request.setAttribute("name","孤傲苍狼");

%>

<%--${name}等同于pageContext.findAttribute("name") --%>

使用EL表达式获取数据:${name}

<hr>

<!-- 在jsp页面中,使用el表达式可以获取bean的属性 -->

<%

Person p = new Person();

p.setAge();

request.setAttribute("person",p);

%>

使用el表达式可以获取bean的属性:${person.age}

<hr>

<!-- 在jsp页面中,使用el表达式可以获取bean中的。。。。。。。。。的属性 -->

<%

Person person = new Person();

Address address = new Address();

person.setAddress(address);

request.setAttribute("person",person);

%>

${person.address.name}

<hr>

<!-- 在jsp页面中,使用el表达式获取list集合中指定位置的数据 -->

<%

Person p = new Person();

p.setName("孤傲苍狼");

Person p = new Person();

p.setName("白虎神皇");

List<Person> list = new ArrayList<Person>();

list.add(p);

list.add(p);

request.setAttribute("list",list);

%>

<!-- 取list指定位置的数据 -->

${list[].name}

<!-- 迭代List集合 -->

<c:forEach var="person" items="${list}">

${person.name}

</c:forEach>

<hr>

<!-- 在jsp页面中,使用el表达式获取map集合的数据 -->

<%

Map<String,String> map = new LinkedHashMap<String,String>();

map.put("a","aaaaxxx");

map.put("b","bbbb");

map.put("c","cccc");

map.put("","aaaa");

request.setAttribute("map",map);

%>

<!-- 根据关键字取map集合的数据 -->

${map.c}

${map[""]}

<hr>

<!-- 迭代Map集合 -->

<c:forEach var="me" items="${map}">

${me.key}=${me.value}<br/>

</c:forEach>

<hr>

</body>

</html>

  运行效果如下:

1.2、执行运算

  语法:${运算表达式},EL表达式支持如下运算符:

    1、关系运算符

  2、逻辑运算符:

  

  3、empty运算符:检查对象是否为null(空)

  4、二元表达式:${user!=null?user.name :""}

  5、[ ] 和 . 号运算符

  使用EL表达式执行运算范例:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-"%>

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@page import="me.gacl.domain.User"%>

<!DOCTYPE HTML>

<html>

<head>

<title>el表达式运算符</title>

</head>

<body>

<h>el表达式进行四则运算:</h>

加法运算:${+}<br/>

减法运算:${-}<br/>

乘法运算:${*}<br/>

除法运算:${

以上是 Javaweb El表达式实例详解 的全部内容, 来源链接: utcz.com/p/209901.html

回到顶部