2009年8月1日土曜日

Struts2 s:ifタグの条件判定文(OGNL式)がうまくいかない場合

以下の条件判定は正しく解釈されません
<s:if test="%{#session.flag == 'Y'}">


文字列の場合は、通常ダブルクォーテーションが必要ですが、
2文字以上あれば、シングルクォーテーションでも、適当に解釈して文字列にしてくれます。

ただし、1文字の場合は明確にダブルクォーテーションで囲まないと、charになってしまうので、
注意してください。

例:シングルクォーテーション(2文字以上の場合)
<s:if test="%{#session.name == 'mofu'}">

例:ダブルクォーテーション(1文字以上の場合)
<s:if test='%{#session.flag == "Y"}'>
もしくは
<s:if test="%{#session.flag == \"Y\"}">