我有这张表格
register.html
我正在尝试使用requestbody中输入字段的值,以便我的应用程序可以创建一个用户
registrationcontrollerrest.java
registrationservice.java
但每次它都会打印出以下错误
Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `de.dummyapt.internship.registration.RegistrationRequest` from Array value (token `JsonToken.START_ARRAY`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `de.dummyapt.internship.registration.RegistrationRequest` from Array value (token `JsonToken.START_ARRAY`) at [Source: (PushbackInputStream); line: 1, column: 1]]
3条答案
按热度按时间njthzxwz1#
正如您的错误消息所描述的,spring试图从json数组解析“registrationrequest”类型的对象。
要实现这一点,必须将json对象传递给控制器,而不是数组。目前,您正在将数据序列化为数组(
serializeArray()
)kognpnkq2#
您应该将formdata作为json对象传递,或者如果您想将formdata作为列表传递,您应该将控制器更改为从ui接受列表。
yqyhoc1h3#
从register.html通过html表单/提交发送用户数据。在这种情况下,您需要在控制器方法上使用@modelattribute注解。
@自动在html名称属性和变量之间进行modelattribute注解Map。所以,您应该在表单上添加name属性,并将它们和registrationrequest类中变量的名称相匹配
或者,您可以使用javascript创建json对象,并使用ajax发送该数据。