2017-05-24 11 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」はJavaオブジェクト「車」へブラウザから送信マッピングする必要があります。

通常、MapからYour Vehicle pojoへのjsonマッパーまたはカスタムマッピングを使用します。

0

も試してください。POSTあなたのpojoのパラメータ名でressamblesを整形したオブジェクト。

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

また、私は自分のコードを投稿したり、彼らはJSが日付値に

をシリアル化された方法に応じて、正しく実行することを確認してくださいいずれか、カスタム(デ)シリアライザーを使用していることがわかり最高 nas

0

リクエストボディのプロパティのjava Vehicle#loadingDate属性と同じ名前ではない可能性があります。

リクエストボディが、あなたは次のようにJavaの属性にその名前をマップするためにloading_dateという属性持っていると仮定:

import com.fasterxml.jackson.annotation.JsonProperty; 

@JsonProperty("loading_date") 
private Date loadingDate; 

また、日付の文字列変換を定義するためには良い考えかもしれません。

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; 

、あなたが忘れてしまった場合にはゲッターとセッターを追加します。

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; 
} 
関連する問題