传递日期以在Spring MVC中请求param

use*_*645 45 spring spring-mvc

我是Spring MVC的新手 - 我试图从我的javascript中传递一个日期作为请求Param

我的控制器看起来像 -

public @ResponseBody List<RecordDisplay> getRecords(
            @RequestParam(value="userID") Long userID,
            @RequestParam(value="fromDate") Date fromDate,
            @RequestParam(value="toDate") Date toDate) {
Run Code Online (Sandbox Code Playgroud)

我的问题是如何通过javascript进行调用 - 就像URL应该是什么样的

for eg. - /getRecords?userID=1&fromDate=06022013&toDate=08022013'
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来解析日期,以便Spring可以识别它吗?

Sud*_*kar 84

使用 @DateTimeFormat("MMddyyyy")

public @ResponseBody List<RecordDisplay> getRecords(
@RequestParam(value="userID")  Long userID,
@RequestParam(value="fromDate")     @DateTimeFormat(pattern="MMddyyyy") Date fromDate,
@RequestParam(value="toDate")     @DateTimeFormat(pattern="MMddyyyy") Date toDate) {
Run Code Online (Sandbox Code Playgroud)

  • FWIW,我不得不添加`@DateTimeFormat(pattern ="MMddyyyy")`.给出答案[这里](http://stackoverflow.com/a/15164985/777980) (5认同)
  • 我在春天找不到`@ Dateformat`,但我找到了像@dannrob那样的@ DateTimeFormat. (2认同)
  • 哦,这在Java日期时间格式中的““ mm”`是MINUTES,而“ MM”`是MONTHS之前使我很伤心。 (2认同)

dan*_*rob 23

现在这也是@DateTimeFormat,它支持一些常见的ISO格式

  • 是! 补充这个答案:看起来好像这样:@RequestParam(value ="onDate")@ DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate onDate, (5认同)

Kim*_*Man 8

使用@DateTimeFormat(pattern ="yyyy-MM-dd"),其中yyyy是年份,MM是月份,dd是日期

public @ResponseBody List<Student> loadStudents(@DateTimeFormat(pattern="yyyy-MM-dd") Date birthDay) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 最好使用`@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)`. (3认同)