EL表达式学习笔记

EL表达式学习笔记

EL全称:Expression Language)。使用EL表达式主要是为了简化Jsp的代码,EL表达式可以替代jsp页面中的jsp脚本代码的数据获取、条件判断等功能。

1.从作用域中获取数据

1.1使用el表达式获取存储在作用域中的数据



    Title

  

    <%
        session.setAttribute("key","aaa");
    %>


    jsp:<%=session.getAttribute("key")%>
    
el表达式:${key}

运行后页面显示:
在这里插入图片描述

效果是一样的,不过这里el表达式更简洁。

1.2使用el表达式获取存储在作用域中的对象



    Title


<%
    //先创建一个Emp类的对象,并存储在session作用域中
    Emp emp =new Emp();
    emp.setName("张三");
    emp.setSex("男");
    session.setAttribute("emp",emp);
%>


使用jsp代码获取上面的emp对象的信息:

<%
    //jsp代码获取session作用域中的emp对象
    Object object = session.getAttribute("emp");
    //获取到的是Object类型,这里转型为Emp
    Emp emp1 =(Emp)object;
%>
<%-- 获取对象的信息并在页面上显示 --%>
jsp:<%=emp1.getName()%>

使用el表达式获取emp对象的信息:

<%--使用el表达式获取作用域中key为emp的对象,里面的name值--%>
el表达式:${emp.name}

如上所示,要想在作用域中获取emp对象里的name属性,需要emp.name,这里其实是调用了emp对象的getter方法

public class Emp {
     
    private String name;
    private String sex;
	/*就是下面这个*/
    public String getName() {
     
        return name;
    }
    public String getSex() {
     
        return sex;
    }
	...
}

如果没设置getter方法,那么el表达式用emp.name这样的方式获取会出现异常。

不同之处:当el表达式获取失败时,会不显示,而jsp代码会显示null,如下

el表达式:${name}

jsp:<%=session.getAttribute("name")%>

页面显示:
在这里插入图片描述

1.3el表达式搜索作用域的顺序

当四个域有相同key的数据时:

<%
    pageContext.setAttribute("key","pageContext");
    request.setAttribute("key","request");
    session.setAttribute("key","session");
    application.setAttribute("key","application");
%>

${key}

页面显示:pageContext

使用el表达式会优先从拥有该key的作用域最小的那个获取。

2.el表达式中的运算符

几个常用的运算符:

运算符 描述
== 或 eq 判断是否相等
> 或 gt 判断是否大于
< 或 lt 判断是否小于
empty 判断是否为空
! 或 not

使用演示:

${empty emp}  //emp为空则返回true
${not empty emp}  //emp不为空则返回true
${emp == null}  //emp为null返回true

! 或 not | 非 |

使用演示:

${empty emp}  //emp为空则返回true
${not empty emp}  //emp不为空则返回true
${emp == null}  //emp为null返回true

你可能感兴趣的:(笔记)