Struts2 役立ちリンク

Struts2でs:datetimepickerのvalueにDate変数を指定すると、
どうやっても西暦の前2桁がなくなってしまう現象について。

一応の解決をみたので紹介。

まず、このバグ。もしかしたら、OSがLinuxのせいかもしれない。
もしかしたら、datetimepikerの使いかたが間違っているのかもしれない。
それは前提にないとして、この現象が起きていてどうにもならない人に。

まず、正攻法ではどうやってもうまくいかなかった。
ここでいう正攻法とは、datetimepickerのパラメータに何かを渡すことで解決させる事。
formatLength="medium"の状態で
HTMLソースを見てみると、普通に%{date}と指定している場合、
'07/06/04'と西暦の頭2桁がバッサリ切られていることが判明。
formatLength="full"では、'0007/06/04T00:00:00'となり、やはり頭2桁はなくなっていた。
もうどうしようもない。

そこで、しょうがなくActionクラスにgetterを作った。
内容は
public String getFormatDate() {
 SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
 return format.format(date);
}
そして、valueパラメータはvalue="%{formatDate}"と変更。
これでバッチリ表示が出来る。
nameには"name"としておけば、Injectionは正常に行われるため、これで万事うまくいく。
他に方法がない時はこれでしのぐしかないだろうと思う。


それはそうと、
Seasarの産みの親ひがさんのブログでSeasar2.5ブルーオーシャン戦略の資料が見れる。↓
http://s2container.seasar.org/ja/seasar2.5.pdf
とんでもないものが来そうだ。