私のアプリケーションでは、jqueryのデータテーブルを使用してクエリの結果が示されます。 最後のタスクは、フォーム検索に日付フィールドを追加することですが、この値は最終ユーザーにとってはオプションです(フォームの他のものとして)。フォームの日付の値を任意に設定する
これは私は、フォームデータのフィールドを初期化するコードセクションである:空の場合
DTevents = $('#eventsdata').DataTable(
{
"serverSide": true,
"ajax":{
url: "../getevents.json",
type: "post",
"data": function (d)
{
return $.extend(d, {typename : $('#typename').val()}, {infoname : $('#infoname').val()},
{hostname : $('#hostname').val()}, {datevalue : moment($('#datevalue').val()).toDate().getTime() });
}
},
他のフィールドも受け入れられます。
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}
あなたが見ることができるように、日付がコントローラに渡すために長いに変換するmoment.jsへの入力に与えられている。このため、私の春のコントローラでは、私はこのコードを使用していました。他のフィールドの値を挿入せずにアプリに照会すると、完全に機能します(このフォームでは値のないクエリを使用してSELECT *
を実行します)。
しかし、今、私は空の日付を残した場合、私は空のテーブルやコンソールメッセージを得る:
2017-08-23 12:32:44.870 WARN 8396 --- [nio-8080-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to bind request element: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'long'; nested exception is java.lang.NumberFormatException: For input string: "NaN"
だから私の質問は:どのように私はまた、「日付」フィールド私のアプリに伝えることができますオプションですか?
注意をなぜなら、Unixエポックは、それを 'toDate()'に変換するのではなく、 'getTime()'を直接呼び出すからです。 – VincenzoC