使用@DateTimeFormat,客户端发送的请求在语法上不正确

提姆

我有一个JSON格式的字符串,该字符串通过HTTP-PUT发送到具有Spring MVC和Hibernate的服务器。

Controller

@RequestMapping(value = "/", method = RequestMethod.PUT)
public ResponseEntity<Map<String, Object>> myTest(
        @RequestHeader("a") String a,
        @RequestBody MyTestClass b) { … }

JSON

{
 "number":"123",
 "test":"11/14"
}

test 是java.util.Date(MySQL->日期),我这样注释POJO:

@Column(name = "TEST")
@DateTimeFormat(pattern = "MM/yy")
private Date test;

因此test应将其格式化为月/年。但是我在Firefox RESTClient上进行了尝试,并且总是得到The request sent by the client was syntactically incorrect.Remove test,一切正常,并且可以按预期工作。

看来,这有@DateTimeFormat(pattern = "MM/yy")什么问题吗?

Sotirios Delimanolis

因为您使用RequestBody的是application/json内容类型,所以Spring将使用其MappingJackson2HttpMessageConverter将您的JSON转换为您的类型的对象。但是,您提供的日期字符串11/14与任何预配置的日期模式都不匹配,因此无法正确解析。MappingJackson2HttpMessageConverter,或者更具体的ObjectMapper,没有工作,不知道什么@DateTimeFormat,Spring的注解。

您将需要告诉Jackson要使用哪种日期模式。您可以使用自定义日期反序列化器

public class CustomDateDeserializer extends JsonDeserializer<Date> {
    @Override
    public Date deserialize(JsonParser jp, DeserializationContext ctxt)
            throws IOException, JsonProcessingException {
        SimpleDateFormat format = new SimpleDateFormat("MM/yy");
        String date = jp.getText();

        try {
            return format.parse(date);
        } catch (ParseException e) {
            throw new JsonParseException(e);
        }
    }
}

然后只需注释您的字段,以便Jackson知道如何对其进行反序列化。

@JsonDeserialize(using = CustomDateDeserializer.class)
private Date test;

@DateTimeFormat如果您将url编码的表单参数与一起使用,可以使用@ModelAttributeSpring注册了一些转换器,这些转换器可以将String值从请求参数转换为Date对象。这在除胶剂中有描述。

本文收集自互联网,转载请注明来源。

如有侵权,请联系debugcn@gmail.com 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

客户端发送的请求在语法上不正确。在春季使用@RequestParam

来自分类Dev

发送帖子请求时,客户端发送的请求在语法上不正确

来自分类Dev

春季HTTP错误400客户端发送的请求在语法上不正确

来自分类Dev

Spring @RequestBody:客户端发送的请求在语法上不正确

来自分类Dev

客户端发送的请求在语法上不正确。-Spring MVC + JDBC模板

来自分类Dev

收到错误:客户端发送的请求在语法上不正确

来自分类Dev

客户端发送的请求在spring mvc,ajax中在语法上不正确

来自分类Dev

客户端发送的请求在语法上不正确。在@ManyToOne关系中休眠,春季

来自分类Dev

春季HTTP错误400客户端发送的请求在语法上不正确

来自分类Dev

客户端发送的请求在语法上不正确-JSON POST正文中的类型复杂

来自分类Dev

“客户端发送的请求在语法上是不正确的。” -内容类型错误

来自分类Dev

Spring形式:客户端发送的请求在语法上不正确()

来自分类Dev

AngularJS发布数据显示“客户端发送的请求在语法上不正确”

来自分类Dev

使用Spring MVC进行CRUD时出现错误“客户端发送的请求在语法上不正确”

来自分类Dev

客户端发送的请求在语法上不正确,而使用AngularJS通过其余部分调用WebService时

来自分类Dev

正在获取HTTP状态400-客户端发送的请求在语法上不正确:使用curl来发送/发送json请求

来自分类Dev

Spring HTTP Status 400-客户端发送的请求在语法上不正确(添加日期输入时)

来自分类Dev

Spring MVC复选框HTTP状态400客户端发送的请求在语法上不正确

来自分类Dev

Spring MVC表单-Long和String值。客户端发送的请求在语法上不正确

来自分类Dev

DHTMLX dhtmlxForm.send()抛出HTTP状态400-“客户端发送的请求在语法上不正确。”

来自分类Dev

通过客户端发送的请求是语法不正确的Java ZonedDateTime后端

来自分类Dev

在node.js中发送带有XML数据的POST请求:错误400,“客户端发送的请求在语法上不正确”

来自分类Dev

春季客户发送的请求在语法上不正确

来自分类Dev

春季客户发送的请求在语法上不正确()

来自分类Dev

客户端发送的请求在语法上是错误的

来自分类Dev

'-'附近的语法不正确。(Microsoft SQL Server本机客户端10.0)

来自分类Dev

'.' 附近的语法不正确 (Microsoft SQL Server 本机客户端 11.0)

来自分类Dev

Apollo GraphQL 客户端格式化请求不正确

来自分类Dev

Microsoft OneDrive客户端设置不正确的lastModifiedDateTime

Related 相关文章

  1. 1

    客户端发送的请求在语法上不正确。在春季使用@RequestParam

  2. 2

    发送帖子请求时,客户端发送的请求在语法上不正确

  3. 3

    春季HTTP错误400客户端发送的请求在语法上不正确

  4. 4

    Spring @RequestBody:客户端发送的请求在语法上不正确

  5. 5

    客户端发送的请求在语法上不正确。-Spring MVC + JDBC模板

  6. 6

    收到错误:客户端发送的请求在语法上不正确

  7. 7

    客户端发送的请求在spring mvc,ajax中在语法上不正确

  8. 8

    客户端发送的请求在语法上不正确。在@ManyToOne关系中休眠,春季

  9. 9

    春季HTTP错误400客户端发送的请求在语法上不正确

  10. 10

    客户端发送的请求在语法上不正确-JSON POST正文中的类型复杂

  11. 11

    “客户端发送的请求在语法上是不正确的。” -内容类型错误

  12. 12

    Spring形式:客户端发送的请求在语法上不正确()

  13. 13

    AngularJS发布数据显示“客户端发送的请求在语法上不正确”

  14. 14

    使用Spring MVC进行CRUD时出现错误“客户端发送的请求在语法上不正确”

  15. 15

    客户端发送的请求在语法上不正确,而使用AngularJS通过其余部分调用WebService时

  16. 16

    正在获取HTTP状态400-客户端发送的请求在语法上不正确:使用curl来发送/发送json请求

  17. 17

    Spring HTTP Status 400-客户端发送的请求在语法上不正确(添加日期输入时)

  18. 18

    Spring MVC复选框HTTP状态400客户端发送的请求在语法上不正确

  19. 19

    Spring MVC表单-Long和String值。客户端发送的请求在语法上不正确

  20. 20

    DHTMLX dhtmlxForm.send()抛出HTTP状态400-“客户端发送的请求在语法上不正确。”

  21. 21

    通过客户端发送的请求是语法不正确的Java ZonedDateTime后端

  22. 22

    在node.js中发送带有XML数据的POST请求:错误400,“客户端发送的请求在语法上不正确”

  23. 23

    春季客户发送的请求在语法上不正确

  24. 24

    春季客户发送的请求在语法上不正确()

  25. 25

    客户端发送的请求在语法上是错误的

  26. 26

    '-'附近的语法不正确。(Microsoft SQL Server本机客户端10.0)

  27. 27

    '.' 附近的语法不正确 (Microsoft SQL Server 本机客户端 11.0)

  28. 28

    Apollo GraphQL 客户端格式化请求不正确

  29. 29

    Microsoft OneDrive客户端设置不正确的lastModifiedDateTime

热门标签

归档