第一种:${book.state = "1"?"在馆内":"已借出" }第二种:
<c:choose>
   <c:when test="${book.state = "1"}">
     在馆内
   </c:when>
   <c:when test="${book.state = "0"}">
     已借出
   </c:when>
</c:choose>两种方式效果等价吗?如果不一样,下面的方法该怎么修改才和第一种方法一致?

解决方案 »

  1.   

    当你的book.state存在多个值如:0,1,2的时候就不等价啦
    当值为2时:
    前者输出:已借出
    后者:空白,没有输出
      

  2.   

    楼上的正确,就像是java程序里面的三目运算法
    也就是搞两个参数
      

  3.   


    补充:只讨论两种结果的情况下。为什么我用第一种没问题  用第二种 就报错呢,还有<c:if >标签也报错
      

  4.   

    可以算半个等价吧,第一种就像if,else而第二种就像是switch
      

  5.   

    在同一个<c:choose> 中时,<c:otherwise> 必须为最后一个标签。、
    改为:
    <c:choose> 
      <c:when test="${book.state = "1"}"> 
        在馆内 
      </c:when> 
      <c:when test="${book.state = "0"}"> 
        已借出 
      </c:when> 
    <c:otherwise>未知错误</c:otherwise>
    </c:choose> 
      

  6.   

    <c:choose> 
      <c:when test="${book.state == '1'}"> 
        在馆内 
      </c:when> 
      <c:when test="${book.state == '0'}"> 
        已借出 
      </c:when> 
    <c:otherwise>未知错误 </c:otherwise> 
    </c:choose>
      

  7.   

    <c:choose>
    <c:when test="">value</c:when>
    <c:otherwise>valuec</c:otherwise>
    </c:choose>格式是这样的吧