복붙노트

[SPRING] Angular Js는 Java Spring에서 잘못된 요청을 게시합니다. mvc

SPRING

Angular Js는 Java Spring에서 잘못된 요청을 게시합니다. mvc

Java Spring MVC 프로젝트에서 @RestController에 객체를 게시하고 내가 게시 한 객체에 날짜 속성이 있습니다. 이 속성을 제거하면 게시물이 성공적으로 작동합니다. 하지만 date 속성을 사용하면 400 개의 잘못된 요청을 반환합니다. 이 때 Date는 java.util.Date입니다.

컨트롤러의 메소드 :

@RequestMapping(value = "/users/createPetition", method = RequestMethod.POST)
public @ResponseBody PetitionDTO addPetition(@RequestBody PetitionRequestDTO petitionDto, Model model) {   ...

청원서 요청서

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}"

해결법

  1. ==============================

    1.JSON Date에 대한 JS 코드에서 더 나은 형식을 보장해야합니다. "올바른"JSON 날짜 형식을 고려해야합니다.

    JSON Date에 대한 JS 코드에서 더 나은 형식을 보장해야합니다. "올바른"JSON 날짜 형식을 고려해야합니다.

    일단 JSON Date String을 Date Object - spring mvc date 형식으로 form : input으로 변환 할 수 있으려면 Spring MVC에서 해당 Date Time Formatter가 필요합니다. 또 다른 예가 있습니다.

  2. ==============================

    2.log4j 속성에서 봄 디버그 로그를 활성화하여 요청시 전송 된 객체의 잘못된 내용을 볼 수 있습니다. log4j 등록 정보에 다음 행을 추가하십시오.

    log4j 속성에서 봄 디버그 로그를 활성화하여 요청시 전송 된 객체의 잘못된 내용을 볼 수 있습니다. log4j 등록 정보에 다음 행을 추가하십시오.

    log4j.logger.org.springframework.web=debug
    

    예를 들어, 내 오류 텍스트 :

    여기에서 "날짜"필드가 문제를 일으키는 것을 볼 수 있으며 주위를 조사하여 문제를 해결할 것입니다.

  3. from https://stackoverflow.com/questions/29379947/angular-js-post-date-bad-request-in-java-spring-mvc by cc-by-sa and MIT license