2016-06-28 3 views
0

Я использую JavaScript в JSP. Я могу отправить formData в Spring Controller с <form action>, но мне нужно было отправить через Ajax сейчас. Я не использую JQuery или AngularJS или любую другую инфраструктуру JS.Отправить formdata для Spring MVC с использованием JavaScript Ajax

моя форма здесь:

<form:form id="saveAddressForm" modelAttribute="address"> 
    <tr> 
     <td><label>Address1</label></td> 
     <td><input type="text" name="addressLine1"></td> 
     <td><label>Address2</label></td> 
     <td><input type="text" name="addressLine2"></td> 
    </tr> 
    <tr> 
     <td><label>LandMark</label></td> 
     <td><input type="text" name="londMark"></td> 
     <td><label>City</label></td> 
     <td><input type="text" name="city"></td> 
    </tr> 
    <tr> 
     <td><label>Pincode</label></td> 
     <td><input type="number" name="pincode"></td> 
     <td></td> 
     <td><input type="submit" value="Save Addess" onsubmit="saveAddress()"></td> 
    </tr> 
</form:form> 

JS функции:.

function saveAddress(){ 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     // On success i need to display a message. 
    } 
    }; 
xhttp.open("POST", "add_address.html", true); 
xhttp.send();} 

Здесь мой FormData т.е. адрес объекта, не включая в запросе.

@RequestMapping(value = "/add_address", method = RequestMethod.POST) 
public String addAddress(@ModelAttribute("address") Address address, Model map) 
{ 

    // Services will be called here. 
    return null; 
} 

Я думаю, что мне не хватает чего-то, чтобы добавить свой объект к запросу.

Я вижу пару сообщений в SOF, они решаются с помощью JQuery или AngularJS. Я не знаю об этом.

Редактировать

Думать, как улучшить мой вопрос. Я хочу, чтобы «modelAttribute» отправлялся на контроллер. Не индивидуальный параметр, ни рамки работы JS.

ответ

0

В чем проблема?

Вам нужно добавить параметры для создания объекта Adress.

См Send POST data using XMLHttpRequest

+0

Мой объект не собирается контролер слоя – CHowdappaM

+0

Проверьте отображение сервлета и, если это нормально удалить '@ModelAttribute («адрес») Адрес address', чтобы увидеть, если вы передаете в контроллере. –

0

Вы можете использовать JQuery легко сериализовать данные формы и передать просьбу.

Здесь приведен код с jquery.

function saveAddress(){ 
    var xhttp = new XMLHttpRequest(); 
    var form = document.getElementById('saveAddressForm'); 
    var data = new FormData(form); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     // On success i need to display a message. 
    } 
    }; 
xhttp.open("POST", "add_address.html", true); 
xhttp.send(data);} 
+0

Я не использую JQuery. – CHowdappaM

+0

Хорошо. Я редактировал код здесь, который является чистым javascript –

+0

var data = new FormData (form); Можно ли ссылаться на объект Address? В моем контроллере я пытаюсь получить объект Address. а не отдельные параметры. Возможное?? – CHowdappaM

Смежные вопросы