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

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

什么是EL表达式?

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

 

为什么需要EL表达式?

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

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

 

EL表达式的语法?

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

EL 表达式语法如下:

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

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

Java表达式:

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

EL表达式:

  1. ${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或””,结果为布尔类型,其基本的语法格式如下:

  1. ${empty var}

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

代码示例:

  1. <body>
  2. <%
  3. // 1、值为 null 值的时候,为空
  4. request.setAttribute("emptyNull",null);
  5. //
  6. // 2、值为空串的时候,为空
  7. request.setAttribute("emptyStr","");
  8.  
  9. // 3、值是 Object 类型数组,长度为零的时候
  10. request.setAttribute("emptyObj",new Object[]{});
  11.  
  12. // 4、list 集合,元素个数为零
  13. request.setAttribute("emptyList",new ArrayList<String>());
  14.  
  15. // 5、map 集合,元素个数为
  16. request.setAttribute("emptyMap",new HashMap<String,Object>());
  17. %>
  18.  
  19. ${empty emptyNull}<br/>
  20. ${empty emptyStr}<br/>
  21. ${empty emptyObj}<br/>
  22. ${empty emptyList}<br/>
  23. ${empty emptyMap}<br/>
  24.  
  25. </body>

5)条件表达式

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

  1. ${A?B:C}

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

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

6)三元运算

语法格式如下:

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

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

代码示例:

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

 

EL表达式隐含对象

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

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

评论交流
    说说你的看法
欢迎您,新朋友,感谢参与互动!