Angular Js在Java Spring mvc中发布日期错误请求
在Java Spring MVC项目中,我将对象发布到@RestController,并且我发布的对象具有日期属性。 如果我删除此属性,该post可以成功运行。 但是使用date属性,它会返回400个错误请求。 在dto中,Date是java.util.Date
控制器中的方法:
@RequestMapping(value = "/users/createPetition", method = RequestMethod.POST) public @ResponseBody PetitionDTO addPetition(@RequestBody PetitionRequestDTO petitionDto, Model model) { ...
PetitionRequestDTO
public class PetitionRequestDTO { private Long userId; private Long categoryId; private String title; private String description; private Date initialDate; private String address; //getters setters
角js调用
if ($scope.petitionForm.$valid) { $http.post(getCompletePath("users/createPetition"), JSON.stringify($scope.newPetition)) .success(function (petition) { }).error(function (data, status, headers, config) { });
在js中,日期具有下一个值:Thu Mar 19 2015 00:00:00 GMT-0300(阿根廷标准时间)
完整的json是:
"{"selectedCategory":{"id":3,"name":"Plomero","description":"Plomeria"},"name":"aaa","title":"bbb","description":"ccc","initialDate":"2015-03-19T03:00:00.000Z","address":"asd","categoryId":3}"
您需要确保JSON日期的JS代码中有更好的格式。 这里有一个讨论你应该考虑 – “正确的”JSON日期格式 。
按顺序完成后,你需要Spring MVC中相应的Date Time Formatter才能将JSON Date String转换为Date Object – spring mvc date format with form:input ; 这是另一个例子 。
在log4j属性中,激活spring调试日志,以便您能够看到请求中发送的对象出了什么问题。 将以下行添加到log4j属性:
log4j.logger.org.springframework.web=debug
例如,我的错误文本:
org.springframework.http.converter.HttpMessageNotReadableException:无法读取JSON:无法识别的字段“date”(类org.joda.time.DateTime),未标记为可忽略
在这里,我可以看到我的“日期”字段引起了问题,我将通过调查来解决它。
- Angularjs文件上传无法正常工作
- 带有spring MVC的JasperReport:在客户端打印报告而不显示它
- 避免使用keycloak默认登录页面并使用项目登录页面
- 带有Spring Security的AngularJS Web应用程序
- 将jhipster后端和前端分成两个项目?
- 如何将Cross Origin资源共享与Spring MVC 4.0.0 RESTful Webservice集成
- 如何将Yeoman scaffolding与现有的Java目录结构相结合
- Spring文件上传 – 获得预期的MultipartHttpServletRequest:是否配置了MultipartResolver? 错误
- 预检的响应具有无效的HTTP状态代码:401 angular