% と $ その3

ブレークポイントを付けて追っかけてみました。
「%」の場合は、タグ内でOGNL評価されます。
「$」の場合は、WebworkValueStackScopeでOGNL評価されたものが、更にタグ内でOGNL評価されています。
そのためStringの「1」をもう一度ONGL評価するとIntegerの「1」になっていたために、「$」をつけた場合は、ContainUtil#contains(Object obj1,Object obj2) で等価となっていたようです。
Listの場合は、Listを更にOGNL評価しようとしたためにエラーになったみたいです。


「$」の場合は既にOGNL評価済みということを理解していませんでした。なので、「$」を付けてwebworkのタグライブラリに値を渡すのはやっちゃいけないということですね。
理解不足でした。