我正在尝试在提交表单后显示成功消息。我使用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
答案 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