JSTL的一个注意点

  JSTL是编写前台页面时常用的组件。应用非常广泛。偶最近初次使用,遇到了不少问题。于是把一个细节写下来,和大家共勉。
         有这样一段代码,类似于java里的if-else语句,请看:
         <c:choose>
              <c:when test="${infoQuestionOption.otherOption == '0'} " >
                     <td align="center">其他</td>
              </c:when>
              <c:otherwise>
                     <td align="center"><c:out value="${infoQuestionOption.name} "/></td>
              </c:otherwise>
         </c:choose>
         但是,这段代码是不执行的。也就是我们在页面上看不到“其他”的字样,也看不到从数据库中提取的“name”的值。请教了不少使用JSTL多时的同事也一时找不到原因。输出“otherOption”的值,也是正确的。
         于是找到Sun提供的一份JavaEE教程,仔细看了关于JSTL的示例代码,这里贴上一段:
     <c:choose>
            <c:when test="${count == 0}" >
                   No records matched your selection.   
            </c:when>
            <c:otherwise>
                   ${count} records matched your selection.
            </c:otherwise>
       </c:choose>
       然后仔细对比条件判断的语句:
       我的:<c:when test="${infoQuestionOption.otherOption == '0'} " >
       例子:<c:when test="${count == 0}" >
       发现一个小小的差异:就是最后的上面2行代码中表红的地方,我写的句子在"}"和“"”之间有一个空格。不经意把这个
空格去除,天,居然能正确运行了!
       这就是问题的最终根源。
       总结一下,JSTL的EL表达式中,最好不要在表达式使用的引号之间存在空格。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值