通常我会说为Jackson编写一个Serializer / Deserializer,但由于你不想要任何其他依赖,你可以使用JAXB解决方案. Jackson(带有Resteasy)支持JAXB注释.所以我们能做的就是写一个

XmlAdapter来从String转换为LocalDate.一个例子就是这样的

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class LocalDateAdapter extends XmlAdapter {

@Override

public LocalDate unmarshal(String dateString) throws Exception {

return LocalDate.parse(dateString, DateTimeFormatter.ISO_DATE);

}

@Override

public String marshal(LocalDate localDate) throws Exception {

return DateTimeFormatter.ISO_DATE.format(localDate);

}

}

你可以选择你想要的任何格式,我刚刚使用了DateTimeFormatter.ISO_DATE,它基本上会寻找这种格式(2011-12-03).

然后,您需要做的就是为该类型的getter注释该字段

public class Person {

private LocalDate birthDate;

@XmlJavaTypeAdapter(LocalDateAdapter.class)

public LocalDate getBirthDate() { return birthDate; }

public void setBirthDate(LocalDate birthDate) {

this.birthDate = birthDate;

}

}

如果您不希望使用此批注来混淆模型类,则可以在包级别简单地声明批注.

在与模型类相同的包中的package-info.java文件中,添加它

@XmlJavaTypeAdapters({

@XmlJavaTypeAdapter(type = LocalDate.class,

value = LocalDateAdapter.class)

})

package thepackage.of.the.models;

import java.time.LocalDate;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;

测试

@Path("/date")

public class DateResource {

@POST

@Consumes(MediaType.APPLICATION_JSON)

public Response postPerson(Person person) {

return Response.ok(DateTimeFormatter.ISO_DATE.format(

person.getBirthDate())).build();

}

}

@Test

public void testResteasy() throws Exception {

WebTarget target = client.target(

TestPortProvider.generateURL(BASE_URI)).path("date");

String person = "{\"birthDate\":\"2015-01-04\"}";

Response response = target.request().post(Entity.json(person));

System.out.println(response.readEntity(String.class));

response.close();

}

结果:2015-01-04

UPDATE

同样对于杰克逊(我知道OP说没有依赖关系,但这是针对其他人的),你可以使用jackson-datatype-jsr310模块.请参阅完整解决方案here

java输入做参数需要close吗_JAX-RS和java.time.LocalDate作为输入参数相关推荐

  1. Java 初学者做的第一个微信小程序--关于Java基础

    为什么 学习 Java 三年,目前已经工作了2年,因为自学,基础差,所以打算年末总结一下常见的基础知识和面试点: 也可以通过独立做一个项目整合自己工作期间学习的知识,加深印象. 但是想着回家或是平时手 ...

  2. java后端做教育视频网站源码_【Java并发面试点】看这一篇应该是够了

    [Java并发面试点]看这一篇应该是够了 Java并发编程是Java后端.大数据开发面试必问项目之一,求职者务必掌握! Java并发面试点List 并发概念须知:进程与线程.同步与异步.并发与并行.阻 ...

  3. 小猿圈讲解Java可以做什么?

    前几天有个小伙伴问我学完Java可以做什么?对于大部分人只知道Java是编程语言的一种,但是具体的能做什么确不是很了解,针对这样的现象,小猿圈给大家讲解一下Java可以做什么? 1. 大数据 大数据领 ...

  4. Java能做什么?学完Java可以从事什么工作呢?

    如果你是一个Java初学者,你可能对Java应用在什么地方感到困惑.除了"马里奥""贪吃蛇"等经典游戏,其他领域好像也找不到Java的踪迹,那么Java究竟能做 ...

  5. 英语不好学java好学吗_英语不好能学好java,做程序员吗?

    原标题:英语不好能学好java,做程序员吗? 很多想学java的朋友,都存在着这样一个疑惑:我的英语很差劲,对学习java没有影响吗?java编程用到英语的地方很多吧,我英语不好能学好java吗? 学 ...

  6. Java 接口做参数,接口回调

    JAVA接口做参数,接口回调 接口做参数:将实现某接口的类的对象的引用用作参数传递给该接口参数.该接口通过回调来实现该接口方法. 接口回调:实现某接口的类的对象的引用,赋值给该接口声明的接口变量. 难 ...

  7. java Swing 做一个简单的输入文本框

    java Swing做一个简单的文本输入框, 新建一个SwingDemo类: // //java swing做一个简单的文本框 //Created by lee_1310 on 2019.03.29 ...

  8. java代码做repeat次运算,从键盘输入几个数,比最值

    总结:今天这个题目有点灵活,因为它不但要求输出结果,还要进行几次相同的输入,不退出循环 import java.util.Scanner;//从键盘一次输入更多的数,然后把每一次的数进行---可比较, ...

  9. java多线程做一件事_关于Java的十件事

    java多线程做一件事 那么,您从一开始就一直在使用Java? 还记得那些被称为" Oak"的日子,OO仍然是热门话题,C ++人士认为Java没有机会,Applet还是一件事吗? ...

最新文章

  1. 脑机接口--用于将音乐与思想进行合成
  2. linux c 查看 结构体 宏 函数 关键字定义
  3. Tomcat在自定义xml文件中配置虚拟目录
  4. 诺基亚基于区块链推环境感知服务,助力智慧城市发展
  5. Effective Java之谨慎地覆盖clone(十一)
  6. mysql存储引擎的方式_Mysql转换表存储引擎的三种方式
  7. 从底层重学 Java 之 Character 字符型 Gitchat连接
  8. mysql sql running no_【MySql】复制出现Slave_SQL_Running: No 错误解决
  9. Mr.J-- jQuery学习笔记(六)--attrprop方法
  10. Esxi遇到问题汇总。
  11. @RequestBody 接收数组、List 参数、@Deprecated 标记废弃方法
  12. 最好的录屏软件 WebEx Recorder Editor
  13. MATLAB如何创建表格
  14. IR2104/03 TLP250
  15. 顺序结构程序设计(顺序结构与选择结构)
  16. poi创建excel表打不开——文件格式与扩展名不匹配
  17. 搜索引擎的网址收录链接
  18. 绝对值的计算(自用)
  19. 非线性优化中的KTT条件(知乎文章的理解)
  20. 解决freeswitch30s就挂掉的问题

热门文章

  1. TypeScript - Interfaces
  2. vmware下ubuntu重启后不能上网
  3. “要源码上门自取”,结果人真上门了!国内企业再惹争议
  4. 卧槽!我随便写的一个 API 竟获得 2.5 亿的访问量...
  5. Google 6面,最终还是挂了…
  6. 阿里技术专家加多:Java异步编程实战之基于JDK中的Future实现异步编程
  7. 七步从AngularJS菜鸟到专家(4和5):指令和表达式
  8. ueditor 在线附件和在线图片路径错误BUG补丁
  9. 一个jeecg整合activiti的学习例子,源码下载
  10. 服务器部署多个tomcat方法