2016-11-02 9 views
0

私は私がのような2つのPOJOを持っているいくつかのフォームのhandling.Supposeを理解するためのいくつかの助けをしたいSpring MVCの中で新たなんだ...Spring MVCのフォーム処理フォームの複数のPOJO

public class Loginfo{ 
    private String username; 
    private String password; 

    setters and getter... 
} 

別のクラスのような..です

pubic class PersonalInfo{ 
    private String name; 
    private String age; 
    private Loginfo loginfo; 
    setters and getter... 
} 

そして最後に、私はこのフォームを処理するにはどうすればよいfields->ユーザ名、パスワード、氏名、年齢

を持つフォームを持っています。私はコントローラーコードでなければならないことを意味します。

+1

春のdocやgoogleを読むと、かなり早く回答が得られます。 –

答えて

0

あなたのアプリケーションにはJSONコンバータが必要です。この目的のためにジャクソンを使うことができます。このためには、Jacksonコア、データバインド、およびアノテーションのjars/dependenciesが必要です。 3つのjarファイル/依存ファイルがすべて同じバージョンであることを確認してください。

ディスパッチャ・サーブレットに以下の追加:httpリクエストがコントローラに出るたび

<beans:bean 
     class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
     <beans:property name="messageConverters"> 
      <beans:list> 
       <beans:ref bean="jsonMessageConverter" /> 
      </beans:list> 
     </beans:property> 
    </beans:bean> 

    <!-- Configure bean to convert JSON to POJO and vice versa --> 
    <beans:bean id="jsonMessageConverter" 
     class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
    </beans:bean> 

上記コードを直接その逆JSONにオブジェクトを変換します。あなたが投稿VARの名前はpersonalInfoであることを確認し

@RequestMapping(value = "/serviceName", method = RequestMethod.POST, headers = "Accept=application/json") 
    public @ResponseBody void service(@RequestBody PersonalInfo personalInfo){ 
} 

:コントローラで

コードは次のようになります。

0

上記の答えは正しいですが、これを行う最も簡単な方法は、ただすべきことであるが、その後、例えば

<input type="text" name="loginfo.username" /> 

と右手のコントローラに次のコードをあなたのPOJOのvaribale名のように、フォームのフィールド名を命名されます

@RequestMapping(value="yourMapping",mehod=RequestMethod.POST) 
public Stirng YourMethodName(PersonalInfo info){ 
return "yourMpaaing"; 
} 
+0

あなたの質問は、複数のオブジェクトについてです。答えは1つです。それらのうちの1つを意味をなさせるために変更する必要があります。 – zeroflagL

関連する問題