EL 運算式
一、什么是 EL 運算式,EL 運算式的作用?
EL 運算式的全稱是:Expression Language,是運算式語言, EL 運算式的作用:EL 運算式主要是代替 jsp 頁面中的運算式腳本在 jsp 頁面中進行資料的輸出, 因為 EL 運算式在輸出資料的時候,要比 jsp 的運算式腳本要簡潔很多,示例如下:

頁面效果:

此時,它們輸出的格式好像沒什么區別,如果輸出的鍵(key)找不到,會是什么情況呢?

頁面效果如下:

我們發現,當key找不到的時候,運算式腳本會輸出null值,而EL運算式會輸出空串,我們希望在頁面上展示的是空串而不是null值(用戶是不知道null的意思的),
運算式腳本怎樣才能輸出空串呢?

頁面效果如下:

從上面的結果來看,運算式腳本輸出空串是一件非常繁瑣的事情,
EL運算式的格式:
${運算式}
二、EL 運算式搜索域資料的順序
EL 運算式主要是在 jsp 頁面中輸出資料, 主要是輸出域物件中的資料, 當四個域中都有相同的 key 的資料的時候,EL 運算式會按照四個域的從小到大的順序去進行搜索,找到就輸出,
頁面效果如下:

三、EL 運算式輸出 Bean 的普通屬性,陣列屬性,List 集合屬性,map 集合屬性
3.1、輸出Bean的普通屬性
JavaBean如下:

EL運算式如下:

效果如下:

3.2、輸出Bean的陣列屬性
EL運算式如下:

頁面效果如下:

3.3、輸出Bean的List集合屬性
EL運算式如下:

頁面效果如下:

3.4、輸出Bean的Map集合屬性
EL運算式如下:

頁面效果如下:

我們在Person類中添加一個getAge()方法(不用添加age屬性):

EL運算式如下:

頁面效果如下:

總結:使用EL運算式輸出Bean的屬性時,起決定性因素的是Bean中的getXxx(),而不是具體的某個屬性,就算沒有這個屬性,只要有對應的getXxx()方法,也可以達到同樣的輸出效果,
四、EL 運算式——運算
4.1、關系運算

示例:

效果:

4.2、邏輯運算

示例:

效果:

4.3、算數運算


示例:

效果:

4.4、empty運算
empty 運算可以判斷一個資料是否為空,如果為空,則輸出 true,不為空輸出 false, 以下幾種情況為空: 1、值為 null 值的時候,為空 2、值為空串的時候,為空 3、值是 Object 型別陣列,長度為零的時候 4、list 集合,元素個數為零 5、map 集合,元素個數為零示例:
<body> <% //1.值為null的時候,為空 request.setAttribute("emptyNull", null); //2.值為空串的時候,為空 request.setAttribute("emptyStr", ""); //3.值是Object型別的陣列,長度為0的時候,為空 request.setAttribute("emptyArr", new Object[]{}); //4.List集合,元素個數為0 List<String> list = new ArrayList<>(); // list.add("abc"); request.setAttribute("emptyList", list); //5.Map集合,元素個數為0 Map<String, Object> map = new HashMap<>(); // map.put("key", "value"); request.setAttribute("emptyMap", map); %> ${ empty emptyNull } <br/> ${ empty emptyStr } <br/> ${ empty emptyArr } <br/> ${ empty emptyList } <br/> ${ empty emptyMap } </body>
效果:

4.5、三元運算
運算式 1?運算式 2:運算式 3 如果運算式 1 的值為真,回傳運算式 2 的值,如果運算式 1 的值為假,回傳運算式 3 的值,示例:

效果:

4.6、“.”點運算 和 [] 中括號運算子
① .點運算,可以輸出 Bean 物件中某個屬性的值,
效果:

效果:


效果:

五、EL 運算式的 11 個隱含物件
EL 運算式中的11 個隱含物件,是 EL 運算式中自己定義的,可以直接使用,
![]()
5.1、EL 獲取四個特定域中的屬性

示例:

效果:

當4個域中有重復的鍵的時候:

效果:

如果我們要輸出其它的域中的資料,怎么輸出呢?
示例:

效果:

5.2、pageContext 物件的使用
request.getScheme() :它可以獲取請求的協議 request.getServerName() :獲取請求的服務器 ip 或域名 request.getServerPort() :獲取請求的服務器埠號 getContextPath() :獲取當前工程路徑 request.getMethod() :獲取請求的方式(GET 或 POST) request.getRemoteHost() :獲取客戶端的 ip 地址 session.getId() :獲取會話的唯一標識示例:

效果:

示例:

效果:

5.3、EL 運算式其他隱含物件的使用

示例:

效果:


示例:

效果:


示例:

效果:

![]()

示例:

效果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/213201.html
標籤:Java
