關於JSTL中使用EL的一個小細節

最近的一個項目中,使用到了JSTL標籤和EL表達式,希望儘量的擺脫用scrilplet的習慣,使項目的代碼更加優雅。哈!

 

但在項目開發的過程中,碰到了一些小細節,不得不要注意。

其中的一個是JSTL中使用EL的時候,在一個沒有注意的小地方,得不到預期的輸出結果,還令我花費了整整一天多的時間來debug,這個代價不可以不說是巨大的,也同時批評一下自己的基礎知識有所欠缺,要加強。

其他不說,上代碼:

 

<c:set var="aaa" value="${111*2}" />
<c:choose>
<c:when test="${aaa <= 0} ">aaa</c:when>
<c:when test="${aaa == 222} ">bbb</c:when>
<c:when test="${aaa > 222} ">ccc</c:when>
<c:otherwise>No comment sir...</c:otherwise>
</c:choose>
<br>

 

以上代碼的結果是多少呢?謎底揭開,答案是:No comment sir...

就是這麼簡單的計算和判斷操作,由於不夠細心,所以得不到自己預期的答案。

原因就在於when的test的表達式裏的一個細節:空格!!

所以,正確的寫法如下:

 

<c:set var="aaa" value="${111*2}" />
<c:choose>
<c:when test="${aaa <= 0}">aaa</c:when>
<c:when test="${aaa == 222}">bbb</c:when>
<c:when test="${aaa > 222}">ccc</c:when>
<c:otherwise>No comment sir...</c:otherwise>
</c:choose>
<br>

答案就是:bbb

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章