带有日期的Spring MVC控制器

use*_*612 6 java spring spring-mvc

我一直在尝试使用:

@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";
}
Run Code Online (Sandbox Code Playgroud)

有了这个链接:

http://localhost:8080/timesheet/consultaporusuarioperiodo/1/21012000/22012000
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

HTTP Status 400 -

type Status report

message

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

Apache Tomcat/7.0.27
Run Code Online (Sandbox Code Playgroud)

当我改为:

        @PathVariable("datainicio") String dataInicio,
        @PathVariable("datafim") String dataFim
Run Code Online (Sandbox Code Playgroud)

这是工作.使用Date可以做些什么?

谢谢

dim*_*sli 15

尝试:

    @PathVariable("datainicio") @DateTimeFormat(iso=ISO.DATE) String dataInicio,
    @PathVariable("datafim") @DateTimeFormat(iso=ISO.DATE) String dataFim
Run Code Online (Sandbox Code Playgroud)

其中ISO.DATE是的yyyy-mm-dd图案.


Noa*_*vin 8

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

@PathVariable("datainicio") @DateTimeFormat(pattern = "ddMMyyyy") Date dataInicio
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!