2016-09-20 4 views
0

jsonobjectからjavascriptSpring controllerに送信しようとしています。私はangularJs $http postを使っています。私はkeyobejctとして送信したときにlastNameをnullとしています。しかし、stringをハードコードされた値として送信すると、その値はcontrollerに表示されます。ここでcontrollerコードは:

@RequestMapping(value="/edit", method= RequestMethod.POST) 
@ResponseBody 
    public void editInformation(@RequestBody UserDetails userDetails){ 
     LOGGER.debug("THE LASTNAME IS: "+userDetails.getLastName()); 
     //codes..... 

    } 

ここangularJsコードは:JSONはヌルとしてuserDetails.getLastName()を返すよう

$fieldProperty =$(this).attr("name"); 
$inputValue =$(this).val(); 

$http.post("/app/edit", {$fieldProperty : $inputValue}).success(function(result){ 
       alert("Success "+result) 
      }).error(function(data, status){ 
       //$log.info("The error is: "+data+ " and the error status code is: "+status) 
       alert("failure"+" and the data is: "+data+ " and the stis "+status) 
      }); 

{$fieldProperty : $inputValue}を送信します。ただし、{"lastName" : $inputValue}を送信すると適切な値が返されます。 alert($fieldProperty)で確認しましたが、それはlastNameを返します。 私はGoogle Gsonライブラリを使用しています。

ここには何かがありますか?私はあなたの助けに感謝します。ありがとうございました。

答えて

1

$fieldPropertyを設定するには、最初にオブジェクトを定義する必要があります。この宣言({$fieldProperty : $inputValue})は、キー'$fieldProperty'をJson Objに追加します。なぜ、あなたはSpring ControllerのlastNameにnullを取得しているのですか? Uはこの方法で使用できます

$fieldProperty =$(this).attr("name"); 
$inputValue =$(this).val(); 
var params = {}; 
params[$fieldProperty] = $inputValue; 
$http.post("/app/edit", params).success(function() { 
     // Success Callback 
}); 
関連する問題