3

私はGrailsのテストオペレーターに困惑しています。

この式:

<g:if test="${!(preferences.displayOption.equals('ANA') || preferences.displayOption.equals('FLOP'))} ">
  ${!(preferences.displayOption.equals('ANA') || preferences.displayOption.equals('FLOP'))}
</g:if>

版画

false

それはどうしてですか?私はテストしているのとまったく同じ状態を印刷しています!

次の行に false が出力されるため、テスト条件が「false」と評価されることは確かですが、g:if 内のステートメントはレンダリングされています。

何が起こっているかについてのアヌのアイデア。

4

2 に答える 2

6

問題は、テストの最後の } の後の末尾のスペースだと思います。文字列 "false " は true と評価されますが、"false" は if タグによって適切に false と解釈されます。

于 2010-05-12T10:29:16.657 に答える
1

test 属性の最後の } の後の余分なスペースを削除してみてください。開発モードで URL に「?showSource=true」を追加すると、生成された groovy ソースを表示できます。余分なスペースにより、true と評価される文字列 "false " が作成されます。

于 2010-05-12T10:36:01.663 に答える