Java 带日期的Spring MVC控制器
我一直在尝试使用:Java 带日期的Spring MVC控制器,java,spring,spring-mvc,Java,Spring,Spring Mvc,我一直在尝试使用: @RequestMapping(value="/consultaporusuarioperiodo/{idusuario}/{datainicio}/{datafim}", method = RequestMethod.GET) public String consultaPorPeriodoUsuario( @PathVariable("idusuario") Long idUsuario, @PathVariable("datainicio
@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
谢谢试试:
@PathVariable("datainicio") @DateTimeFormat(iso=ISO.DATE) String dataInicio,
@PathVariable("datafim") @DateTimeFormat(iso=ISO.DATE) String dataFim
其中
ISO.DATE
是yyyy-mm-dd
模式。我不得不做一些非常类似的事情。这就是我所做的:
@PathVariable("datainicio") @DateTimeFormat(pattern = "ddMMyyyy") Date dataInicio
希望这有帮助 本着Spring的精神,最好的选择应该是采用一种统一的方式来处理日期参数。幸运的是,它给了你这个小cookie-把它放到application.properties和。。。鲍勃是你叔叔: spring.mvc.date格式=ddMMyyyy
尝试使用
@DateTimeFormat(pattern=“ddMMyyyy”)
注释日期参数。我已经尝试过使用@DateTimeFormat,但是当我将@PathVariable(“datainicio”)@DateTimeFormat(pattern=“ddMMyyyy”)date datainicio放入时,它也不起作用:-(仅适用于字符串。提示:尝试使用最佳实践,并在请求正文或查询参数中传递这两个日期值。=)将答案标记为正确,以帮助社区:)还有它的副本