2017-05-24 8 views
2

내 브라우저 디버그에서 내 v 객체 내에 날짜 매개 변수가 있음을 알 수 있습니다 (Wed Mar 25 2015 03:00:00 GMT + 0300 (터키 표준시)), 전체 텍스트 문자열 형식.Spring Requestmapping에서 객체 매개 변수로 날짜를 게시하는 방법

function saveVehicle(v) { 
     return $http.post('/shipment/vehicle/save', v).then(function(response) { 
      return response.data; 
     }) 

문제는 내 requestmapping 디버그에서 date 매개 변수가 null과 함께 제공됩니다.

@RequestMapping(value="/vehicle/save", method = RequestMethod.POST) 
public Vehicle saveVehicle(@RequestBody Vehicle v){ 
    return vehicleRepository.save(v); 
} 

그리고 내 차량 모델은 다음과 같이이다 : 서버 측 코드는 다음과 같이이다

@Entity 
@Table(name = "VEHICLE", schema = "VV") 
public class Vehicle { 

    @Column(name = "LOADING_DT") 
    @JsonSerialize(using = TfJsonDateSerializer.class) 
    @JsonDeserialize(using = TfJsonDateDeSerializer.class) 
    private Date loadingDate; 

답변

1

당신은 자바 객체 '차량'으로 브라우저에서 보내는 개체 'V'를지도 할 필요가있다.

일반적으로 json 매퍼 또는 맵에서 사용자 차량 매핑으로 사용자 정의 매핑을 사용합니다.

0

도 시도하십시오. 잘 형성된 객체입니다. 매개 변수 이름에 의해 사용자의 pojo가 ressambles됩니다.

v = { 
    "loading_date": new Date() 
} 
$http.post(..., v); 

또한, 나는 당신이 (비) 직렬, 그래서 어떻게 JS는 날짜 값

에게 직렬화됩니다에 따라, 자신의 코드를 게시하거나 제대로 수행되었는지 확인 중하시기 바랍니다 사용자 정의를 사용하고있는 것을 볼 수 최고 nas

0

요청 본문의 속성이 java Vehicle#loadingDate 속성과 동일하지 않을 수 있습니다. 또한

import com.fasterxml.jackson.annotation.JsonProperty; 

@JsonProperty("loading_date") 
private Date loadingDate; 

, 날짜에 대한 문자열 변환을 정의하는 것이 좋습니다 수 있습니다 : 귀하의 요청에 몸을 가정

다음과 같이 자바 속성에 그 이름을 매핑해야, loading_date라는 속성이 있습니다 : 경우에

import com.fasterxml.jackson.annotation.JsonProperty; 
import com.fasterxml.jackson.annotation.JsonFormat; 

@JsonProperty("loading_date") 
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "UTC") 
private Date loadingDate; 

및 추가 getter 및 setter 당신은 잊었 :

import com.fasterxml.jackson.annotation.JsonProperty; 
import com.fasterxml.jackson.annotation.JsonFormat; 

@JsonProperty("loading_date") 
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "UTC") 
private Date loadingDate; 

public Date getLoadingDate() { 
    return loadingDate; 
} 

public void setLoadingDate(Date loadingDate) { 
    this.loadingDate = loadingDate; 
}