2012-12-22 34 views
1

所以我能够成功地将AJAX请求与Spring MVC集成。但是,我遇到了一个问题 - 如果单击表单的“提交”按钮,我的@Controller类会检测URL并返回一个ModelAndView。然而,我想要的是首先有一个AJAX检查,如果表单提交不成功(例如空白字段),则返回一个AJAX响应。否则,按照常规进行并显示一个ModelAndView。但是,我不知道如何同时整合两者。AJAX集成的Spring

任何想法或教程表示赞赏。

谢谢!

+0

你打算如何处理客户端中的ajax响应?如果它成功,你会得到HTML,否则JSON。看起来不像一个干净的解决方案给我。 – micha

+0

如果不成功,从我的方法(我知道如何编码)返回json。如果成功,从我的方法(我知道如何编码)返回ModelAndView对象。问题是如何处理两者。 – OckhamsRazor

回答

2

您有几种选择:

  • 表单提交给一个特定的,不同的URL,使用AJAX
  • 使用AJAX张贴在特定参数添加到请求时,并使用该特定参数检查如果请求为n AJAX请求
  • 测试如果X-Requested-With请求头是存在并且包含XMLHttpRequest
+0

谢谢!假设我选择第一个选项。如果ajax网址成功,我将如何重定向到其他网址?问题是在ajax的情况下,我可以返回@ResponseBody,但在常规情况下,我必须返回ModelAndView对象。 – OckhamsRazor

+0

在您的JavaScript代码中,您不必将表单发布到普通URL(表单的'action'属性中的表单),而是将表单使用AJAX发布到另一个* URL,该URL由* another * Spring处理方法返回一个ResponseBody。 –

+0

当我想返回一个ModelAndView时如何。基本上,我想使用Ajax提交表单,如果有任何表单,则立即显示错误,否则重定向。 – OckhamsRazor

1

过会在P JAX路线或者也称为HiJax。

基本上你会返回页面的一个子集,如果它是一个使用标题的AJAX请求。大多数人不只是在他们的视图/模板中使用条件来决定包含完整的或无铬的HTML。