Struts2 datetimepickerで日付と時刻を同時に。 あと、フォームのtableについて

datetimepickerだが、
typeにtimeを設定することで時刻編集ができるtimepickerになる。
そこはいいのだが、
日付も時刻もいじりたいときどうすりゃいいのよ?って問題が。
結論から言うと、不可能。
泥くさい方法でやるしかない。
●方法その1
もうdatetimepickerなんかつかわねーで自力でやる。
javascriptでfloatingDivなんか使えばそれらしいのが出来るでしょう。
●方法その2
datetimepickerを2個使う!
片方に日付、もう片方に時刻を表示させる。
●方法その3
datetimepickerとtextfieldを併用する
日付はdatetimepicker、時刻はtextfieldで表示させる。

大体この3種類かな?
オススメはその3。
どの方法にしても、Actionは大変なことになるので、
わたしがやったやり方をちょっとだけ説明。

まず、前に書いた通り、value="%{date}"なんてやってもうまくいかないので、getDate()とgetTime()を用意する。
ただ、今回はgetterだけつくるんじゃなく、String型で日付と時刻を入れておく2つのフィールドとgetterとともにsetterも用意しておきましょう。

それらを使い、項目を表示。
各項目のnameはさっき用意した変数にinjectionされるようにしておくこと。
あとは、それらの変数に文字列としてフォームで変えられた値が入ってくるから、SimpleDateFormatでparseしてDate型に戻して格納。
これでなんとかなります。 大変だけど。

あと、s:textfieldとかのs:formの中に書くようなやつらはデフォルトだと、自動的にテーブルを作ってうまいことやりやがります。
が、ちょっと配置を変えたいときなんかはもうどうにもなりません。
それを解消するには、s:formに「theme="css_xhtml"」を設定してやります。
これでtableが作られなくなります。
各フォームにやるのが面倒で全部同じ設定で良い!って時は
struts.xml
<constant name="struts.ui.theme" value="css_xhtml" />
と書いておきましょう。
もれなく全てのフォームのデフォルトがtheme="css_xhtml"になります。

Struts2を使う上で一番危惧いていたところだったので
解決策があってよかったよかった。