私はリッチフェイスでJSFを使用しています。コア IP の convertDateTime を使用して、inputText を Date に変換しています。
<h:inputText styleClass="datepicker" value="#{searchBean.creationDate}" id="inputfield">
<f:convertDateTime pattern="yyyy-MM-dd" />
</h:inputText>
SearchBeanのcreationDateはJava util Date 型であり、jquery datpickerを使用して入力フィールドにデータを入力しています。
問題は、それがうまく機能していないことです。日付を入力せずにフォームを送信すると (空の入力フィールド)、すべて正常に動作します。しかし、日付を選択すると、呼び出しが Bean に到達しません (デバッグ モードでテストしました)。ページは、サーバー側で例外/ログなしで更新されます。
次の出力を示す簡単なLifeCycleListenerを実装しました。
入力フィールドに日付を入力:
START PHASE RESTORE_VIEW(1)
END PHASE RESTORE_VIEW(1)
START PHASE APPLY_REQUEST_VALUES(2)
END PHASE APPLY_REQUEST_VALUES(2)
START PHASE PROCESS_VALIDATIONS(3)
END PHASE PROCESS_VALIDATIONS(3)
START PHASE UPDATE_MODEL_VALUES(4)
END PHASE UPDATE_MODEL_VALUES(4)
START PHASE INVOKE_APPLICATION(5)
END PHASE INVOKE_APPLICATION(5)
START PHASE RENDER_RESPONSE(6)
END PHASE RENDER_RESPONSE(6)
空の日付:
START PHASE RESTORE_VIEW(1)
END PHASE RESTORE_VIEW(1)
START PHASE APPLY_REQUEST_VALUES(2)
END PHASE APPLY_REQUEST_VALUES(2)
START PHASE PROCESS_VALIDATIONS(3)
END PHASE PROCESS_VALIDATIONS(3)
START PHASE RENDER_RESPONSE(6)
END PHASE RENDER_RESPONSE(6)
2 番目のケースでは、2 つのステップが欠落していることは明らかです。私は JSF に非常に慣れていないため、JSF の内部動作についてはよくわかりません。さらに、検証/変換の例外はありません。私はここで立ち往生しており、どこで解決策を探すべきかわかりません。どんな助けでも大歓迎です。