使用到jsp設計頁面時,EL表達式是少不了的,有時候需要判斷一個對象或一個數組是否爲空,可以使用empty。
例如:有一個list數組,判斷它是否有值,可以使用<c:if test="${empty list}">數組爲空</c:if> <c:if test="${!empty list}">數組不爲空</c:if>
對於對象的判斷也是如此。
百度了一下相關文檔還說明
empty用來對一個空變量值進行判斷: null、一個空String、空數組、空Map、沒有條目的Collection集合
這種方式的判斷就比jstl的<c:if test="${fn:length(list)==0}">數組爲空</c:if> 這種好用多了,也好記。
JSTL 入門: 表達式語言https://www.ibm.com/developerworks/cn/java/j-jstl0211/
EL 擅長尋找對象及其特性,然後對它們執行簡單操作;它不是編程語言,甚至不是腳本編制語言。但是,與 JSTL 標記一起使用時,它就能使用簡單而又方便的符號來表示複雜的行爲。EL 表達式的格式是這樣的:用美元符號($)定界,內容包括在花括號({})中,如清單 3 所示。
----------------------------------------------------------------------------------------------------
http://stackoverflow.com/questions/2811626/evaluate-empty-or-null-jstl-c-tags
You can use the <c:if>
or <c:choose>
for
this.
<code style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif; white-space: inherit; background: rgb(238, 238, 238);"><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"><c:if</span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> </span><span class="atn" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">test</span><span class="pun" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">=</span><span class="atv" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">"${empty var1}"</span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">></span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> var1 is empty or null. </span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"></c:if></span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> </span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"><c:if</span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> </span><span class="atn" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">test</span><span class="pun" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">=</span><span class="atv" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">"${not empty var1}"</span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">></span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> var1 is NOT empty or null. </span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"></c:if></span></code>
or
<code style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif; white-space: inherit; background: rgb(238, 238, 238);"><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"><c:choose></span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> </span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"><c:when</span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> </span><span class="atn" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">test</span><span class="pun" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">=</span><span class="atv" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">"${empty var1}"</span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;">></span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> var1 is empty or null. </span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"></c:when></span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> </span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"><c:otherwise></span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> var1 is NOT empty or null. </span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"></c:otherwise></span><span class="pln" style="color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"> </span><span class="tag" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background: transparent;"></c:choose></span></code><div class="save_code tracking-ad" data-mod="popu_249" style="position: absolute; width: 105px; height: 60px; right: 30px; top: 5px; font-size: 14px; color: rgb(255, 255, 255); cursor: pointer; z-index: 2;"> </div>
The ${not
empty var1}
can also be done by ${!empty
var1}
.
To learn more about those ${}
things
(the Expression Language,
which is a separate subject fromJSTL), check
here.