Сообщение об успешном завершении отправки формы с помощью плагина jQuery Form с Spring MVC - PullRequest
2 голосов
/ 25 мая 2011

Я пытаюсь показать успешное сообщение после отправки формы.Я использую плагин формы jQuery из ссылка

и отправка работает нормально.Вот так:

$('#emailForm').ajaxForm();

Теперь я хотел бы добавить сообщение о успехе под кнопкой отправки, поэтому я добавил div ниже:

<input name="submit" type="submit" value="#springMessage('action.save')" />

                <div id="emailSuccessMessage">

                </div>

и добавил некоторые изменения в jQueryкод:

        var options = { 
        target:        '#emailSuccessMessage',  
        success:       showResponse 

    }; 

$('#emailForm').ajaxForm(options); 

function showResponse(responseText, statusText)  { 
    alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
        '\n\nThe output div should have already been updated with the responseText.'); 
} 

Мой метод контроллера:

@RequestMapping(value = "/password", method = RequestMethod.POST)
    public String changePassword(@Valid @ModelAttribute("editPassword") EditPasswordForm editPasswordForm, BindingResult result) {
        if (result.hasErrors()) {
            return "editAccount";
        }

        userService.changePassword(editPasswordForm);

        return "editAccount";
    } 

Теперь, когда я пытаюсь отправить, он работает, но не отображается предупреждение (я добавил предупреждение только для проверки).Как работает метод showResponse?Я новичок в jQuery, и я хотел бы знать, как я могу достичь своей цели.Где я должен установить текст ответа?

Спасибо

Давид

1 Ответ

2 голосов
/ 25 мая 2011

Если вы используете ajax с Spring MVC, вам нужно убедиться, что ваш ответ будет в пределах тела ответа. Чтобы сделать это, добавьте @ResponseBody аннотацию

Таким образом, ваш код должен выглядеть следующим образом:

@RequestMapping(value = "/password", method = RequestMethod.POST)
@ResponseBody
    public String changePassword(@Valid @ModelAttribute("editPassword") EditPasswordForm editPasswordForm, BindingResult result) {
        if (result.hasErrors()) {
            return "editAccount";
        }

        userService.changePassword(editPasswordForm);

        return "editAccount";
    } 

Подробнее об этом можно прочитать в справочном руководстве Spring MVC: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-responsebody

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...