先說一下el表示式中的null和empty區別,然後再說說最近在專案中出現的乙個有趣的問題。
el中的null和empty都可用來判斷值是否為空,但兩者存在略微的區別,
先用網上的乙個小例子來演示下:
test.jsp**:
<%@page pageencoding="utf-8" %>
name值為:
$empty處理結果:$
==null處理結果:$
第一種情況:位址列輸入:
顯示:
name值為:
empty處理結果:true
==null處理結果:true
第二種情況:位址列輸入:?name=
顯示:
name值為:
empty處理結果:true
==null處理結果:false
分析:第一種情況的name=null,第二種情況的name=「」
empty表示式對於name=null和name=」「的識別是一樣的,都返回true;
==null表示式對於name=null判斷為true,而對於name=」「判斷則是false;
如果非要使用==null表示式判斷是否為空,需要將表示式寫成如下:
$
最近在做的專案中需要在頁面上解析從後台傳來的json資料,我把**簡化,其中有一段**是這樣的,
if test="$>i***portde 值:$
**想實現的目的當i***port不為空時,輸出i***port的值,當為空時則什麼都不輸出;
結果卻匪夷所思,頁面上竟然輸出了「i***portde 值:null」。
既然頁面上有資訊輸出,則代表i***port在判斷時被識別為不為空,但是輸出的i***port值怎麼又是null?
那麼假設i***port為空,這時候頁面是不應該輸出任何資訊的。兩種情況都說不通。
後來揣測是json字串出錯了,後台檢視了json後,許久後才看出端倪來,這串json是通過httpclient從其他系統拿過來的資料,中間也不知道經過了什麼,i***port變成了「null」,是「null」而不是null,也就是i***port的值是「null」字串……尷尬,被這個小細節浪費了些許時間。
el表示式中 null 和empty
先看例子 test.jsp page pageencoding utf 8 name empty處理結果 null處理結果 page pageencoding utf 8 name empty處理結果 null處理結果 顯示 name empty處理結果 true null處理結果 true nam...
el表示式中 null 和empty
el中保留字empty與null的區別 先看例子 test.jsp page pageencoding utf 8 name empty處理結果 null處理結果 顯示 name empty處理結果 true null處理結果 true位址列輸入 位址列輸入 顯示 name empty處理結果 tr...
EL表示式中 empty 和 null 區別
在el中empty對 和null的處理都返回true,而 null對 返回false,對null返回true。比如 a null 如果a是等於 字串空。結果就是false.只能判斷null empty a 不管a等於null或者 結果都是true.empty 運算子主要用來判斷值是否為空 null,...