2

次のように選択/条件が満たされたときに、いくつかのhtmlを印刷しようとしています:

 <c:choose>
      <c:when test="${notification.placeId} == ${place.placeId}">
    ${notification.name}
  </c:when>
<c:otherwise>
    placeId: ${place.placeId} - notplaceid: ${notification.placeId}
    </c:otherwise>
 </c:choose>

これは以下を出力します: placeId: 50 - notplaceid: 43 placeId: 50 - notplaceid: 47 placeId: 50 - notplaceid: 49 placeId: 50 - notplaceid: 50 placeId: 50 - notplaceid: 51 placeId: 50 - notplaceid: 51 placeId: 50 - notplaceid : 51 placeId: 50 - notplaceid: 51 placeId: 50 - notplaceid: 52 placeId: 50 - notplaceid: 53 placeId: 50 - notplaceid: 0 placeId: 50 - notplaceid: 0

これはすべて、otherwise から出力され、when ステートメントから通知名を出力することはありません。印刷からわかるように、太字の出力は when 条件を明確に満たしており、通知名を印刷する必要があります。

誰が何が起こっているのか知っていますか?

4

1 に答える 1

5

使用する

<c:when test="${notification.placeId == place.placeId}">

それ以外の

<c:when test="${notification.placeId} == ${place.placeId}">

入力した方法では、属性testは文字列として評価されます。${notification.placeId}==${place.placeId}

全体をブール式として評価する必要があります。

于 2012-11-28T22:02:05.983 に答える