使用带有Spring MVC的jQuery Form Plugin提交表单后的成功消息

时间:2011-05-24 20:34:58

标签: jquery ajax forms spring-mvc

我正在尝试在提交表单后显示成功消息。我使用link

中的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的新手,我想知道如何实现我的目标。我应该在哪里设置responseText?

感谢

的Dawid

1 个答案:

答案 0 :(得分:2)

如果您在Spring MVC中使用ajax,则需要确保您的响应将在Response Body In ordet中,以便添加@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