我有 DB2 表,其中SOLD_DATE字段是 TIMESTAMP 类型(例如 2017-12-07 08:43:23)。
我希望能够将提供开始和结束日期URL参数的URL发送到我的控制器,如下所示:
http://localhost:8080/irwapi/v1/logs/2014-10-20/2021-10-20
我的控制器看起来像:
@GetMapping(path = "/{startDate}/{endDate}")
public List<CarResponse> getCarsSoldBetween(
@PathVariable("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@PathVariable("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
List<CarResponse> cars = myRepository.getCarsSoldBetween(startDate, endDate);
return cars;
}
myRepository的@Query
方法定义如下:
@Query("select c from CarEntity c where c.carType = 'SPORT' and C.soldDate between ?1 and ?2")
List<CarEntity> getCarsSoldBetween(Date startDate, Date endDate);
当我执行上述方法时,我上面的@Query
方法会引发错误:
"无法将类型'java.lang.String'的值转换为所需类型'java.sql.Date';嵌套异常org.springframework.core.convert.ConversionFailedException:无法从类型[java.lang.String]转换为类型[@org.springframework.web.bind.annotation.PathVariable@org.springframework.format.annotation.DateTimeFormatjava.sql.Date]的值'2014-10-20';嵌套异常org.springframework.core.convert.ConverterNotFoundException:找不到能够从类型[java.util.Date]转换为类型[@org.springframework.web.bind.annotation.PathVariable@org.springframework.format.annotation.DateTimeFormatjava.sql.Date]的转换器"
上面的@DateTimeFormat(pattern=“yyyy-MM-dd”)
对我不起作用的原因是我使用的Date
参数类型是java.sql。日期
而不是java.utils.Date。
一旦我将其更改为正确的包,@DateTimeFormat
就开始正常工作。
有两个选项可以解决此问题。
1.适用于控制器内所有请求的控制器级。
@InitBinder
public void initBinder(WebDataBinder binder){ binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true, 10));
}
外地一级的备选方案2。
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Temporal(TemporalType.DATE)
问题内容: 有人可以建议我如何将日期从这种格式转换为 控制器中的日期 吗? 仅供参考,我的日期将以这种方式存储,并且完全不填充绑定到带有字段的编辑表单时。 #Plunker演示在这里。 编辑Ctrl Edit.html-模板 问题答案: http://docs.angularjs.org/api/ng.filter:date 但是,如果您使用的是HTML5 type =“ date”,则必须使用I
因此,在我的Javascript中,我使用的是表单序列化,输出是正确的 (issubmit=1) 当我试图将其传递给我的控制器时,我什么也得不到,。我做错了什么? Jquery: 控制器:
周日->明谷-0 周一->赛宁-1 周二->Selasa-2 帮我谢谢
我试图找出是否有可能传递一个JSON对象RestAPI,或传递多个参数到该API?如何在Spring中读取这些参数?让我们假设url看起来像下面的例子: 例1<代码>http://localhost:8080/api/v1/mno/objectKey?id=1 传递下面url中的JSON对象是否有效? 例2<代码>http://localhost:8080/api/v1/mno/objectKey
问题内容: 是否有一个内置的转换方法为在Python,例如获得在指定日期的午夜?相反的转换很容易:有一个方法。 我真的必须手动打电话吗? 问题答案: 您可以使用;现在,您创建一个初始化为午夜的对象。