我在 Google 上搜索了很多,但发现答案非常复杂,而且与 JODA 2.3 版不兼容。
我需要在我的 Jersey 服务中使用 LocalDate 作为 QueryParam, 但 QueryParam 不支持 LocalDate 作为有效数据类型。
是否有任何其他注释或解决方法可以将 LocalDate 作为 QueryParam 处理?
@GET @Path("/available")
public List < AvailableClient > getAvailable(@QueryParam(value = "client") ClientDto client, @QueryParam(value = "from") LocalDate from, @QueryParam(value = "to") LocalDate to) {
return client.get(from, to);
}
错误如下: [[致命]未找到公共(public)类型参数的注入(inject)源
最佳答案
您可以接收长值形式的日期并用它创建 LocalDate。
@GET @Path("/available")
public List < AvailableClient > getAvailable(@QueryParam(value = "client") ClientDto client, @QueryParam(value = "from") long from, @QueryParam(value = "to") long to) {
return client.get(new LocalDate(from), new LocalDate(to));
}
如果您确实需要接收 LocalDate 作为 QueryParam,则需要创建 ParamConverter 。 这不是很简单,我更喜欢 long 选项,因为您可以在 java 中的每个日期 api 中使用 long 。
Here是 ParamConverter 的一个很好的例子。
关于java - JODA LocalDate 作为 Jersey 的 QueryParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24015912/