use*_*727 8 java serialization spring json spring-mvc
我有以下代码:
DTO:
Class MyDTO {
import java.util.Date;
private Date dateOfBirth;
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
}
Run Code Online (Sandbox Code Playgroud)
调节器
public void saveDOB(@RequestBody MyDTO myDTO, HttpServletRequest httprequest, HttpServletResponse httpResponse) {
System.out.println("Inside Controller");
System.out.println(myDTO.getDateOfBirth());
}
Run Code Online (Sandbox Code Playgroud)
JSON请求:
{
"dateOfBirth":"2014-09-04",
}
Run Code Online (Sandbox Code Playgroud)
如果我发送请求为yyyy-mm-dd自动转换为日期对象发生. 控制器输出: - dateOfBirth = Thu Sep 04 05:30:00 IST 2014
但是当我以dd-mm-yyyy格式发送DateofBirth时它不会自动将String转换为Date.所以我怎么能处理这种情况.
JSON请求:
{
"dateOfBirth":"04-09-2014",
}
Run Code Online (Sandbox Code Playgroud)
输出:否控制台中的输出甚至没有到达控制器.
我试过@DateTimeFormat,但它不起作用.
我正在使用Spring 4.02请建议我们可以使用任何注释.
Sot*_*lis 14
@DateTimeFormat
用于表单后备(命令)对象.你的JSON是由杰克逊ObjectMapper
在Spring的处理(默认情况下)MappingJackson2HttpMessageConverter
(假设杰克逊的最新版本).它ObjectMapper
有许多可以处理的默认日期格式.它似乎yyyy-mm-dd
是其中之一,但dd-mm-yyyy
事实并非如此.
您需要使用a ObjectMapper
注册自己的日期格式并将其注册ObjectMapper
到MappingJackson2HttpMessageConverter
.以下是各种方法:
或者,您可以JsonDeserializer
在整个类或其中一个字段(日期)上使用a .以下链接中的示例
归档时间: |
|
查看次数: |
21243 次 |
最近记录: |