135

YYYY-MM-DD形式の日付をSpringControllerに送信するGETリクエストがあります。コントローラコードは次のとおりです。

@RequestMapping(value="/fetch" , method=RequestMethod.GET)
    public @ResponseBody String fetchResult(@RequestParam("from") Date fromDate) {
        //Content goes here
    }

Firebugで確認しているので、リクエストは正しく送信されます。エラーが発生します:

HTTPステータス400:クライアントから送信された要求は構文的に正しくありませんでした。

コントローラにこの形式の日付を受け入れさせるにはどうすればよいですか?助けてください。私は何が間違っているのですか?

4

7 に答える 7

271

わかりました、解決しました。終日ノンストップのコーディングで疲れていて、そんなばかげたことを見逃しているかもしれない人のために書いています。

@RequestMapping(value="/fetch" , method=RequestMethod.GET)
    public @ResponseBody String fetchResult(@RequestParam("from") @DateTimeFormat(pattern="yyyy-MM-dd") Date fromDate) {
        //Content goes here
    }

はい、簡単です。DateTimeFormat アノテーションを追加するだけです。

于 2013-03-01T19:03:20.290 に答える
13

これは、フロントエンドからフォーマットされた日付を取得するために私がしたことです

  @RequestMapping(value = "/{dateString}", method = RequestMethod.GET)
  @ResponseBody
  public HttpStatus getSomething(@PathVariable @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) String dateString) {
   return OK;
  }

欲しいものを手に入れるために使えます。

于 2017-09-04T03:05:36.880 に答える