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 表达式也是有关键字的,其关键字如下表
    andeqgt
    instanceofdivor
    lefalseempty
    notltge

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}
    
  • 效果
    在这里插入图片描述

上一篇

下一篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JSP(JavaServer Pages)是一种服务器端的动态网页开发技术,它可以将 Java 代码嵌入 HTML 页面中,从而实现动态网页的生成。 JSP 的基本原理是将 JSP 页面翻译成 Servlet,在服务器端执行 Servlet 代码,再将执行结果返回给客户端。因此,我们在使用 JSP 开发网页时,需要先了解 Servlet 的相关知识。 JSP 的语法基本上就是 HTML 标签加上 Java 代码。以下是一些基本的 JSP 标签: 1. <% ... %>:嵌入 Java 代码,可以用于定义变量、写循环、判断语句等。 2. <%= ... %>:输出 Java 代码的执行结果。 3. <%-- ... --%>:注释,不会被翻译成 Servlet。 4. <jsp:include ... />:包含其他 JSP 页面或 HTML 页面。 5. <jsp:forward ... />:将请求转发到其他资源(JSP 页面、Servlet 或 HTML 页面)。 6. <jsp:useBean ... />:创建 JavaBean 对象。 7. <jsp:setProperty ... />:为 JavaBean 对象设置属性。 8. <jsp:getProperty ... />:取得 JavaBean 对象的属性值。 在 JSP 页面中,我们还可以使用 EL 表达式和 JSTL 标签库来简化代码编写,提高开发效率。 EL(Expression Language)表达式是一种简化的表达式语言,可以用于取值、赋值、计算等操作。例如,${name} 表示取得名为 name 的变量的值。 JSTL(JavaServer Pages Standard Tag Library)是一套标签库,提供了循环、条件判断、格式化、国际化等常用功能的标签。例如,<c:forEach> 标签可以用于循环遍历集合,<c:if> 标签可以用于条件判断。 除了以上标签库,JSP 还支持自定义标签库。我们可以通过编写标签处理器来扩展 JSP 的功能。 JSP 的优点是可以将 Java 代码嵌入 HTML 页面中,使得网页的开发更加灵活和方便。但是,由于 JSP 页面需要翻译成 Servlet,因此会增加服务器的负担和响应时间。此外,JSP 页面中夹杂着 Java 代码,也不利于代码的维护和调试。因此,在开发大型网站时,建议使用 MVC 设计模式,将业务逻辑和视图分离,使得代码更加清晰和易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御承扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值