EL表达式

Posted 一宿君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式相关的知识,希望对你有一定的参考价值。

1、认识EL表达式

  • 全称(Expression Language)
  • EL表达式提供了获取对象以及属性的简单方法
    Jsp写法:<%= session.getAttribute("name") %>。
    EL表达式写法:"${sessionScope.name}"
    

    注意:
    EL表达式写在JSP的html代码中,而不能写在<%与%>之间。

2、EL表达式的格式

  • 用美元符号“$”定界,内容包括在花括弧“{}”中;
    在这里插入图片描述

  • EL表达式提供了获取对象以及属性的简单方法,某些情况下EL表达式完全可以替代JSP脚本或者JSP的行为;

3、EL表达式兼容性问题

三种方法解决EL表达式无法使用的问题:

在默认情况下,Servlet 2.3 / JSP 1.2是不支持EL表达式的,而Servlet 2.4 / JSP 2.0支持。

  • 3.1、第一种修改web.xml文件
    //此处version要达到2.4以上
    <web-app version="3.1"  
    xmlns="http://java.sun.com/xml/ns/javaee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
    http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd"> 
    
  • 3.2、第二种设置某个jsp页面使用el表达式:需要在jsp页面加上(每个页面都要加,过于繁琐,不推荐)
    <%@ page isELIgnored="false"%>  
    
  • 3.3、第三种web.xml文件中加上下列代码,每个jsp页面都可以使用(推荐使用):
    <jsp-config>  
      <jsp-property-group>  
        <url-pattern>*.jsp</url-pattern>  
        <el-ignored>false</el-ignored>  
      </jsp-property-group>  
    </jsp-config> 
    

4、 EL表达式的基本语法

  • EL 提供.和[]两种运算符来存取数据。

  • 通常情况下两者是通用的:

    ${user.name}
    ${user["name"]}
    
  • “[]”还可以用来对集合元素进行定位:

    ${booklist[0].price}
    
  • 以下两种情况必须使用”[]”:

    1.包含特殊符号:
    ${user.first-name}错误写法
    ${user[“first-name”]}正确写法
    
    2.通过变量动态取值:
    ${user[param]}
    

5、EL的变量

  • EL存取变量数据的方法很简单,例如:${username}。
  • 它的意思是取出某一范围中名称为username的变量。
  • EL表达式的查找顺序
    在这里插入图片描述
  • EL实现获取param中的值
  • app3.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <form action="app4.jsp" method="post">
        <input type="text" name="user" value="${param.user}" />
        <input type="submit" value="提交" />
    </form>
    
    
    </body>
    </html>
    
    
  • app4.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    
        <%
        if(request.getParameter("user") != null){
            if(request.getParameter("user").equals("user")){%>
                "欢迎用户"
         <% }else if(request.getParameter("user").equals("admin")){ %>
                "欢迎管理员"
       <%}
        }%>
    
    </body>
    </html>
    
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

6、EL表达式的隐式对象

在这里插入图片描述

  • 与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。
  • 例如我们要取得用户的请求参数时,可以利用下列方法:
    request.getParameter(String name)
    request.getParameterValues(String name)
    
  • 在EL中则可以使用param和paramValues两者来取得数据。
     ${param.name}
     ${paramValues.name}
    

7、EL运算符

  • EL运算符允许对数据和文字进行组合比较。
    在这里插入图片描述
  • 最常用的表达式
    为空判断:${empty param.name}
    三元运算:${A?B:C}
    算数运算:${A*(B+C)} 
    
  • 算数运算符:
    在这里插入图片描述
  • 关系运算符:
    在这里插入图片描述
  • 逻辑运算符和其他运算符:
    在这里插入图片描述

以上是关于EL表达式的主要内容,如果未能解决你的问题,请参考以下文章

jsp--EL表达式

jsp中的EL表达式

Jsp入门EL表达式_学习笔记

第五条知识点

EL表达式

EL表达式的基本知识