環境
・Struts 2.3.29
EL式とかOGNLを使うのですが
Struts2にはELやOGNLなどがあり下記のサイトが大いに参考になるのですが
上記のサイトを参考に
<s:if test="%{sampleSign == @fully.qualified.package.ConstantClass@SAMPLE_SIGN_A}">
こんな感じのコードを以前実装しており、既に動いていたので
staticメソッドも同様に呼び出せるだろうと思っていたのですが
<s:hidden value="%{@fully.qualified.package.DateUtil@getString(sampleDateTime)}" />
とか
<input type="hidden" value="<s:property value="@fully.qualified.package.DateUtil@getString(sampleDateTime)" />">
や
<input type="hidden" value="<s:property value="%{@fully.qualified.package.DateUtil@getString(sampleDateTime)}" />">
これらが当然動くだろうと思ってたらハマってしまいました。
(Date and Time APIのLocalDateTimeが原因かと思ってたが違った...)
struts.xmlにallowStaticMethodAccessを設定
"struts2" jsp static method
でググれば出てくるのですが、Struts 2.3.20 以上は
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
という設定が必要です。