2017-11-15 7 views
0

ここで私のフォームmodelAttributeをDTOファイルと共にバネコントローラに送信しようとしていますが、DTOはコントローラではnullです。 実際には、私のmodelAttribute 'myForm'にはフィールド値が含まれているので、私はDTOファイルの値を個別に送信する代わりに、コントローラにデータをいくつか送る必要があります。これで私を助けてくれますか?前もって感謝します。以下は、私のコードの詳細は、JSPはjspのmodelAttributeと共にjqueryのspringにDTOファイルを送ります。

<form:form name="myForm" modelAttribute="item"> 

var values = $("#item").serialize(); 
var dto = $("customDto").serialize(); 
    dto = { 
     type : "New Item", 
     userId : userId, 
     status : "New", 
    }; 

    $.ajax({ 
     type : "post", 
     data : values + "&dto=" + dto, 
     url : "/myApp/submit.do", 
     success : function(msg) { 
      jQuery("#msg").html("Form submitted"); 
     } 
    }); 

春コントローラー:

@RequestMapping(value = "/submit") 
public ModelAndView submitForm(
    @ModelAttribute("item") Item item,@ModelAttribute("dto") CustomDto customDto) { 
    //Logic 
    return model; 
} 

答えて

0

いずれかを使用しModelAttribute、このために、このためにmodelattributeを入れて、その後、(アイテムやDTO)内部の2つのオブジェクトとマッパークラス を作成しますマッパー

 @RequestMapping(value = "/submit") 
        public ModelAndView submitForm(
          @ModelAttribute MapperClass mapper) { 
     ...    

        } 



     Class MapperClass { 
     //Put all fields here which is sending from UI to controller 

    private Item item; 
private CustomDto customDto; 
//create getters and setters 

     } 
+0

ありがとう、私の質問は混乱しているようです。ここでは、DTOとmodelAttributeをJSPからコントローラに送信しようとしています。 – user3016821

+0

次に、DTOのすべてのフィールドを持つマッパークラスと、jspからコントローラに送信するものをコントローラーメソッドの '@ModelAttribute object'で解決できます。 –

+0

@ user3016821チェックしてください。 –

関連する問題