JavaWeb——JSP 的 EL

JavaWeb——JSP 的 EL

  • EL,即 Expression Language,是 JSP2.0 中引入的新内容,用于简化在 JSP 开发中对象的引用,从而规范代码。

一、EL 基础

  • EL 的功能之一就是便于将 Java 代码片段嵌入到 JSP 页面中。

1、EL 语法

  • EL 语法以 “${” 开头,以 “}” 结束,中间为表达式,格式如下:
    	${expression}
     注意,如果 JSP 页面中有  “${ ” 要输出,为了避免冲突,应当在前面加上转义字符 “\” 或者用 “${'${'}"
    

2、EL 优点

  • EL 具有语法简单、使用方便。
  • EL 可以与 JSTL 和 JavaScript 配合使用。
  • EL 和大多数编程语言一样。

3、禁用 EL

  • 在较低版本的浏览器中,并不支持 EL,此时就需要进行禁用操作了,禁用方式有如下几种:
  • 1、用反斜杠禁用少量的 EL 语句,如
    	\${expression}
    
  • 对于页面中 EL 语句较多的可以通过 page 指令禁用 EL
  • 使用 page 指令禁用 EL 表达式的格式如下:
    	<%@page isELIgnored="布尔值"%>
    
  • 而对于需要在多个页面禁用 EL 表达式,则需要在 web.xml 中进行配置了,
    	<jsp-config>
    		<jsp-property-group>
    			<url-pattern>*.jsp</url-parttern>
    			<el-ignored>true</el-ignored>
    		</jsp-property-group>
    	</jsp-config>
    

二、EL 关键字和运算符及其优先级

1、关键字

  • 和大多数编程语言一样,EL 表达式也是有关键字的,其关键字如下表
    and eq gt
    instanceof div or
    le false empty
    not lt ge

2、运算符及其优先级

  • EL 可以访问数据运算符、算术运算符、关系运算符、逻辑运算符、条件运算符和 empty 运算符,运算符的优先级如下:
    在这里插入图片描述
  • 同级运算符从左向右结合。

2、EL 使用数据

  • EL 通过“[]”和“.”运算符可以对 Bean 的属性等数据进行访问;通常除了所访问的对象的属性名包含“- .”等特殊符号和数组只能用“[]”访问,其余情况这两者的功能是等价的。

2.1、获取数组

  • 示例:
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>EL表达式测试</title>
        <style type="text/css">
            body{
                background: #d7c7e9;
                align-items: center;
                text-align: center;
            }
        </style>
    </head>
    <body>
    <h2>1、数组元素获取</h2>
    <%
        String[] arr = {"秦国","楚国","韩国","齐国"};
        request.setAttribute("book", arr);
    %>
    <%
        String[] arr1 = (String[])request.getAttribute("book");
        for(int i=0;i<arr1.length;i++){
            request.setAttribute("requestl", i);
    %>
    ${requestl}:${book[requestl]}<br>
    <%}%>
    </body>
    </html>
    
  • 效果:
    在这里插入图片描述

2.2、获取集合

  • 示例
    <h2>2、List 元素获取</h2>
    <%
        List<String> list = new ArrayList<>();
        list.add("广东省");
        list.add("湖南省");
        list.add("云南省");
        list.add("北京市");
        list.add("山东省");
        list.add("山西省");
        session.setAttribute("province", list);
    %>
    <%
        List<String> list1 = (List<String>)session.getAttribute("province");
        for(int i=0;i<list1.size();i++){
            request.setAttribute("requestl", i);
    %>
    ${requestl}:${province[requestl]}<br>
    <%}%>
    
  • 效果:
    在这里插入图片描述

3、EL 算术运算

  • 同 Java 语言一样, EL 表达式可以进行加减乘除等算术运算:
    运算符 功能 例子 结果
    + ${19+1} 20
    - ${66-30} 36
    * ${52.1*10} 521
    /或div ${5/2} 2.5
    %或mod 求余 ${17%3} 2

4、EL 的 empty 运算符

  • EL 提供 empty 运算符判断对象是否为空,示例:
    <h2>3、empty 运算符</h2>
    <%request.setAttribute("user","");%>
    <%
        request.setAttribute("user1", null);
    %>
    <h3>
        ${empty user}<br>
        ${empty user1}
    </h3>
    
  • 效果:
    在这里插入图片描述

5、EL 的 关系逻辑运算

  • 示例如下:
    <h2>4、关系逻辑运算</h2>
    <%
        request.setAttribute("userName","御承扬");
        request.setAttribute("power", "test");
    %>
    userName=${userName}<br>
    power=${power}<br>
    \${userName!=""and(userName="ycy")}:
    ${userName!=""and(userName=="ycy")}<br>
    \${userName=="御承扬"and(power=="test")}
    ${userName=="御承扬"and(power=="test")}
    
  • 效果如下:
    在这里插入图片描述

6、EL 的条件运算符

  • EL 中也有和 C 语言类似的“?”条件运算,示例如下:
    <h2>5、条件运算</h2>
    <%
        request.setAttribute("str", "天若有情天亦老,人间正道是沧桑。");
    %>
    \${empty str? "str is null":str}:
    ${empty str?"str is null":str}
    
  • 效果
    在这里插入图片描述

上一篇

下一篇

发布了146 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42896653/article/details/103399835
今日推荐