EL表达式详解(语法作用及6大运算使用)

EL表达式详解(语法作用及6大运算使用)-mikechen

什么是EL表达式?

EL是Expression Language的缩写,是一种在JSP页面获取数据的简单方式,只能获取数据不能设置数据。

 

为什么需要EL表达式?

在JSP开发中为了获取Servlet域对象中存储的数据,需要书写很多的Java代码,这样会使JSP页面看起来十分的混乱,难以维护。

为此,在JSP2.0规范中提供了EL表达式。

 

EL表达式的语法?

EL 表达式语法以${开头,以}结束,中间为合法的表达式。

EL 表达式语法如下:

${EL表达式}1复制代码类型:[java]

例如以下Java表达式和El表达式的作用相同:

Java表达式:

<%=request.getParameter(“username”)%>

EL表达式:

${param.username}

比较以上两种表达式的形式,都用于输出请求参数username,可以看出,EL表达式使得JSP文件的穿件人员能用更加简单的语法来访问数据。

 

EL表达式的运算?

EL 表达式定义了许多运算符,如算术运算符、比较运算符、逻辑运算符等,使用这些运算符,可以使 JSP 页面更加简洁。

1)关系运算

EL表达式详解(语法作用及6大运算使用)-mikechen

2)逻辑运算

EL表达式详解(语法作用及6大运算使用)-mikechen

3)算术运算

EL表达式详解(语法作用及6大运算使用)-mikechen

4)empty运算符

EL表达式中的empty运算符用于判断某个对象是否为null或””,结果为布尔类型,其基本的语法格式如下:

${empty var}

empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。

代码示例:

<body>
    <%
//        1、值为 null 值的时候,为空
        request.setAttribute("emptyNull",null);
//
//        2、值为空串的时候,为空
        request.setAttribute("emptyStr","");

//        3、值是 Object 类型数组,长度为零的时候
        request.setAttribute("emptyObj",new Object[]{});

//        4、list 集合,元素个数为零
        request.setAttribute("emptyList",new ArrayList<String>());

//        5、map 集合,元素个数为
        request.setAttribute("emptyMap",new HashMap<String,Object>());
    %>

    ${empty emptyNull}<br/>
    ${empty emptyStr}<br/>
    ${empty emptyObj}<br/>
    ${empty emptyList}<br/>
    ${empty emptyMap}<br/>

</body>

5)条件表达式

EL表达式中条件运算符用于执行某种条件判断,类似于Java中的if-else语句,其语法格式如下:

${A?B:C}

表达式A的计算结果为布尔类型:

  • 如果表达式A的计算结果为true,就执行表达式B,并返回B的值;
  • 如果表达式A的计算结果为false,就执行表达式C,并返回C的值;

6)三元运算

语法格式如下:

表达式 1?表达式 2:表达式 3

如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。

代码示例:

<body>
    <%
        //1、值为null值时
        request.setAttribute("emptyNull", null);
        //2、值为空串时
        request.setAttribute("emptyStr", "");
        //3、值是Object类型数组,长度为零的时候
        request.setAttribute("emptyArr", new Object[]{});
        //4、list集合,元素个数为零
        List<String> list = new ArrayList<>();
        request.setAttribute("emptyList", list);
        //5、map集合,元素个数为零
        Map<String,Object> map = new HashMap<String, Object>();
        request.setAttribute("emptyMap", map);
        //6、其他类型数组长度为0
        request.setAttribute("emptyIntArr", new int[]{});
    %>
    ${ empty emptyNull } <br/>
    ${ empty emptyStr } <br/>
    ${ empty emptyArr } <br/>
    ${ empty emptyList } <br/>
    ${ empty emptyMap } <br/>
    ${ empty emptyIntArr} <br/>
    <%-- 三元运算   --%>
    ${ 12 != 12 ? "相等":"不相等" }
</body>

 

EL表达式隐含对象

JSP有9个隐含对象,而EL也有自己的隐含对象,EL隐含对象总共有11 个,如下图所示:

EL表达式详解(语法作用及6大运算使用)-mikechen

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法