2016-09-02 7 views
0

私は春を作成しましたCrud私はポストメソッドを使ってフォームデータを送信しています。 私のコントローラのコード:Spring Frameworkで@ModelAttribute( "myobject")を使用してサーバー上のJSONにアクセスする

@RequestMapping(value = "/submitobject", method = RequestMethod.POST) 
public String saveOrUpdateHrEmployee(@ModelAttribute("myObjectForm") @Validated MyObject myObject, 
     BindingResult result, Model model, final RedirectAttributes redirectAttributes) 

{ 
. 
. 
.  
} 

しかし、今、私はJSONでフォームデータを送信したいが、それは動作しません。私は何をすべきか。私は春に新しく、それが私のbeanクラスのオブジェクトを作り、パラメータからデータを取得する方法を理解できません。助けてください。 ありがとうございます。

+0

動作していないコード、期待される動作と実際のものを表示してください – YakovL

答えて

1
@RequestMapping(value = "/submitobject", method = RequestMethod.POST,produces = "application/json") 
@ResponseBody 
public MyObject saveOrUpdateHrEmployee(@RequestBody @Validated MyObject myObject, 
    BindingResult result, Model model, final RedirectAttributes redirectAttributes) 

{ 
. 
. 
.  
} 

上記のコードは、任意のissues.Spring @RequestBodyはJSONにMyObjectに変換しますために私が知っているwork.Letます。

私の理解のための最も簡単な方法は、@ModelAttributeがクエリ文字列を取ります。したがって、すべてのデータは、URLを通じてサーバーに渡されています。

@RequestBodyについては、すべてのデータが完全なJSON本体を通じてサーバーに渡されます。あなたはあなたのJSON文字列とあなたのPOJOクラス間のプロパティマッチングを持たなければならないことを確認する必要があり

+0

それが動作する場合、答えを受け入れてください。 – VelNaga

+0

VelNagaが動作しません。エラーが発生しました org.springframework.validation.BeanPropertyBindingResult –

+0

メソッドから@ Validated&BindingResultを削除し、それが動作しているかどうかを確認できますか?その間、どのバージョンのSpringを使用していますか? – VelNaga

1

最初に書き留めするrequestbodyでのコードの下に使用

@RequestMapping(value = "/submitobject", method = RequestMethod.POST) 

    public String saveOrUpdateHrEmployee(@ModelAttribute("myObjectForm") @RequestBody MyObject myObject, 
      BindingResult result, Model model, final RedirectAttributes redirectAttributes) 

    { 
    . 
    . 
    .  
    } 

より多くの事があなたの検証バインディング例外があるためであるかもしれないです検証の問題を参照しようとしてくださいorg.springframework.validation.BeanPropertyBindingResult

関連する問題