方向性未定のブログ

今は仕事の備忘録や思ったことをメモしている。

jQueryのDatepickerをStruts1.x環境で使ってハマったところメモ

Struts1.xで日付入力にカレンダー表示から日付選択して入力させる。

Struts1.xはHTML5が使用できないし、Strutsのカスタムタグもカレンダー表示なんてリッチな機能はない。

そこでjQueryのDatepickerを使ってみたが、ハマったので内容をメモしておく。

実現したい機能

  • Datepickerを使った日付の入力画面がある。<html:text>のStrutsタグを利用している。
  • 日付を入力後submitボタンを押下すると入力内容の確認画面に遷移する。
  • 入力確認画面から戻るボタンを押すと入力画面に戻る。
  • 入力画面に戻ると入力済みの情報が引き継がれている
  • Strutsタグを使っているのでフォームのデータの受け渡しはActionFormを経由している。

問題点

戻るボタンを押下して画面遷移すると、日付の入力データが引き継がれていない。

原因

Datepickerのoption設定処理時にActionFormから取得した日付情報が削除されていた。

対応

変数に日付情報を退避し、dateFormat後に再度日付情報を取得する。 具体的には以下のような感じだったはず。記憶を頼りに書いているので間違っていたら後日修正しよっと。

<script>
$(function(){
    $(“#datepicker”).datepicker();
    var date = $(“#datepicker”).val();
    $(“#datepicker”).datepicker("option", "dateFormat", 'yy/mm/dd').val(date);
});
</script>