EL(表达式语言)的使用

EL(表达式语言)的使用

一、EL概述

  EL(Expression Language)叫做表达式语言,它是JSP2.0新增的技术规范。EL的设计主要目的是简化页面输出,它能够完美替代传统JSP中的输出表达式<%= %>,并且还能以更自然的方式输出JavaBean的属性信息。下面是几个EL输出的简单例子:

EL版的“Hello World”

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Pagetitle>
    head>
    <body>
        ${"Hello World!"}
    body>
html>

EL版的输出变量

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Pagetitle>
    head>
    <body>
        <%
            String s="欢迎来到EL的世界";
            request.setAttribute("msg",s);
        %>
        ${msg}
    body>
html>

二、EL的运算符

EL提供以下运算符操作:

EL(表达式语言)的使用_第1张图片

值得注意的是:
1)对于加减法运算符,当参与运算的操作符为字符串,运行时都将自动转换成数值型,如富哦不能被解析为数值型,则抛出异常;
2)表达式${3/0},在运算时不会抛出异常,而是显示infinity;
3)表达式${3/4},结果为0.75;
4)空运算符(empty)用来判断参数是不是null、空字符、空数组、空Map或者空集合,如果是则返回true,否则返回false.

${empty null}   结果:true

三、EL中的“.”操作符和“[ ]”操作符

1、“.”操作符

  “.”操作符的操作对象主要是映射类型Map和JavaBean类型,对于映射类型(Map),可以通过键值形式访问到;对于JavaBean类型,可以通过属性名的形式访问。

“.”操作符输出Map类型对象的信息

<%@page import="java.util.HashMap"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Pagetitle>
    head>
    <body>
        <h1>使用“.”操作符输出Map类型对象的信息h1>
        <%
            HashMap fruitMap=new HashMap();
            fruitMap.put("f1","香蕉");
            fruitMap.put("f2","苹果");
            fruitMap.put("f3","哈密瓜");
            request.setAttribute("fmap", fruitMap);
        %>    
        第一种水果:${requestScope.fmap.f1}<hr/>
        第二种水果:${requestScope.fmap.f2}<hr/>
        第三种水果:${requestScope.fmap.f3}<hr/>
        全部的水果:${requestScope.fmap}<hr/>
    body>
html>

注:代码中requestScope指的是作用域,可在请求范围内查找某个属性对应的值。EL中,还有pageScope、sessionScope、applicationScope三种,分别表示在页面范围、在会话范围、在应用范围查找某个属性对应的值。

代码运行结果:

EL(表达式语言)的使用_第2张图片

2、“[ ]”操作符

  如果从作用域中取出的对象不是映射类型Map或者JavaBean类型,那么“.”操作符就无能为力了,知识后就必须使用“[ ]”操作符,“[ ]”操作符操作更为灵活,不仅可以取出映射类型和JavaBean类型对象,还能操作数组类型对象和列表类型对象。

a.“[ ]”操作符输出Map类型对象的信息

<%@page import="java.util.HashMap"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Pagetitle>
    head>
    <body>
        <h1>使用“[ ]”操作符输出Map类型对象的信息h1>
        <%
            HashMap phoneMap=new HashMap();
            phoneMap.put("p1","三星");
            phoneMap.put("p2","苹果");
            phoneMap.put("p3","小米");
            request.setAttribute("pmap", phoneMap);
        %>    
        第一种手机:${requestScope.pmap["p1"]}<hr/>
        第二种手机:${requestScope.pmap["p2"]}<hr/>
        第三种手机:${requestScope.pmap["p3"]}<hr/>
        全部的手机:${requestScope.pmap}<hr/>
    body>
html>

代码运行结果:

EL(表达式语言)的使用_第3张图片

b.“[ ]”操作符输出数组类型对象的信息

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Pagetitle>
    head>
    <body>
        <h1>使用“[ ]”操作符输出数组类型对象的信息h1>
        <%
            String[] phone={"三星","苹果","小米"};
            request.setAttribute("parray", phone);
        %>
        第一种手机:${requestScope.parray[0]}<hr/>
        第二种手机:${requestScope.parray[1]}<hr/>
        第三种手机:${requestScope.parray[2]}<hr/>
        所有手机:${requestScope.parray}<hr/>
    body>
html>

代码运行结果:

EL(表达式语言)的使用_第4张图片

你可能感兴趣的:(java-web)