8

我一直在尝试使用:

@RequestMapping(value="/consultaporusuarioperiodo/{idusuario}/{datainicio}/{datafim}", method = RequestMethod.GET)
public String consultaPorPeriodoUsuario(
        @PathVariable("idusuario") Long idUsuario,
        @PathVariable("datainicio") Date dataInicio,
        @PathVariable("datafim") Date dataFim
        ,Model model) {
    Usuario usuario = usuarioService.buscaPorId(idUsuario);
    model.addAttribute("timesheet",timeSheetService.buscaPorPeriodoPorUsuario(dataInicio, dataFim,usuario));
    return "timesheetcrud/consultatimesheet";
}

使用此链接:

http://localhost:8080/timesheet/consultaporusuarioperiodo/1/21012000/22012000

但我收到此错误:

HTTP Status 400 -

type Status report

message

description The request sent by the client was syntactically incorrect ().

Apache Tomcat/7.0.27

当我更改为:

        @PathVariable("datainicio") String dataInicio,
        @PathVariable("datafim") String dataFim

这是工作。我可以做些什么来使用 Date ?

谢谢

4

3 回答 3

20

尝试:

    @PathVariable("datainicio") @DateTimeFormat(iso=ISO.DATE) String dataInicio,
    @PathVariable("datafim") @DateTimeFormat(iso=ISO.DATE) String dataFim

模式在哪里ISO.DATEyyyy-mm-dd

于 2013-05-30T23:43:17.110 回答
9

我不得不做一些非常相似的事情。这就是我所做的:

@PathVariable("datainicio") @DateTimeFormat(pattern = "ddMMyyyy") Date dataInicio

希望这可以帮助!

于 2016-06-22T18:43:02.200 回答
0

在 Spring 的精神中,最好的选择应该是一个约定,以统一处理 Date 参数的方式。幸运的是,它正好给了你这个小 cookie - 把它放在 application.properties 中,然后…… Bob 是你的叔叔:

spring.mvc.date-format=ddMMyyyy

于 2019-03-06T21:46:51.040 回答