关于JSTL中使用EL的一个小细节

来源:互联网 发布:java和c哪个难 编辑:程序博客网 时间:2024/05/29 14:31

最近的一个项目中,使用到了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

 

0 0
原创粉丝点击