0

私はJavaのようなカスタムクラスを持っています

    public class AddressesVO {

private Long addressId;
private String address;

public Long getAddressId() {
    return addressId;
}
public void setAddressId(Long addressId) {
    this.addressId = addressId;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}

}

私の春の関数は次のようになります。

     @RequestMapping(value="/searchAddress", method=RequestMethod.POST)
    @ResponseBody
    public String searchAddress(HttpServletRequest request, HttpServletResponse response, @RequestBody        AddressesVO abc) {
System.out.println("This is the AddressesVO  Object" +abc);
    }

上記の関数に ajax 呼び出しを実行し、javascript オブジェクトをデータとして渡しています。

$.ajax({
type: "POST",  
url: "searchAddress/",
data: objname, 
success: function(){  
   alert('Form submitted');
            alert(response);
},
error: function(XMLHttpRequest, textStatus, errorThrown) { 
    alert('failure'+response); 
}       

});

しかし、クライアントから送信されたリクエストが構文的に正しくなく、失敗したというエラーが表示されます

JSオブジェクトをSpringに送信してカスタムクラスとして受け入れる方法を教えてください。

4

1 に答える 1

0

JavaScript オブジェクトを作成する var AddressesVO = new Object();

そのフィールドに入力します

AddressesVO.addressId = 111;
AddressesVO.address = 'some address';

このオブジェクトを ajax 呼び出しに渡します (注: データ: AddressesVO)

$.ajax({
    type: "POST",  
    url: "searchAddress/",
    data: AddressesVO, 
    success: function(){  
        alert('Form submitted');
        alert(response);
    },
error: function(XMLHttpRequest, textStatus, errorThrown) { 
    alert('failure'+response); 
}

スプリングメソッドの変更 (注: @ModelAttribute AddressesVO)

@RequestMapping(value="/searchAddress", method=RequestMethod.POST)
@ResponseBody public String searchAddress(HttpServletRequest request, HttpServletResponse response, @ModelAttribute AddressesVO abc) {
    System.out.println("This is the AddressesVO  Object" +abc);
}

これがうまくいくことを願っています。

于 2015-07-31T09:36:38.023 に答える