2012-10-15 57 views
2

我有一个的Spring MVC应用程序,当用户点击提交按钮,返回到认为一个jQuery的对话框显示像“交易成功”,或者是我想错误消息,如果有的话在对话框中。Spring MVC和JQuery的

目前当表单到达控制器一旦处理完成,如果交易成功或我设置model.addAttribute任何错误(“ServerResponse”,“交易成功”)model.addAttribute(“ServerResponse” ,e)

我想返回“ServerResponse”到对话框但是我不知道什么是附加jQuery的以最好的事件。我不想创建一个Web服务,因为我已经使用一个帖子到服务器,并在事件javascript被关闭。

有人能告诉我一旦ServerResponse元素有一个值,什么是最好的显示与ServerResponse对话的方法。最初当表单被加载时,ServerResponse应该是空的。

希望我对我在这里想达到的目标足够清楚。

编辑

这是我在做什么,但功能不执行,当我返回构成其实际显示在已创建的格点的服务器。

<div id="dialog" title="Server Response"> 
      <p> 
       <span class="ui-icon ui-icon-info" style="float: left; margin: 0 7px 50px 0;"></span> 
       ${results} 
      </p> 

     </div> 

$(function() { 

     var serverResponse = $('#serverResponse').val().length; 

      alert(serverResponse); 

     if(serverResponse != 0){ 

      alert(serverResponse); 
      $("#dialog").dialog();    
     } 

     }); 
+1

这听起来像是在混合使用jQuery for AJAX和传统的完整请求样式MVC的概念。你是否希望在对话框中返回一个新的视图?您是否使用“重定向:/”来防止双重提交?如果关闭JavaScript,那么jQuery对话框也不起作用,所以思路似乎没有意义,并且如果您想要使用该路线并创建控制器方法,您听起来应该使用Web服务返回类似于前端可以抓取的'ResponseEntity '(或更有意义的东西)。 –

+0

如果您真的想要走这条路线,您应该能够使用您使用的任何模板系统将模型数据输出到div中,然后在文档就绪时使用jQuery对话框弹出该div。 –

+0

是的,我正在返回一个新的视图。它是一个简单的表单提交。我没有使用“重定向:/”。我知道什么时候关闭JavaScript jquery不会工作,所以基本上我不依赖于任何JavaScript,JQuery或WebService的表单提交。基本上我使用表单提交,我想当我从服务器返回形式显示一个JQuery对话框与服务器的一些消息。 – devdar

回答

1

使用您在视图图层中使用的任何模板语言将消息从模型输出到div中。喜欢的东西:在该网页上

<div id="serverResponse"><%= serverResponse %></div> 

风格相应,然后在jQuery的(使用jQuery UI)做:

$(function() { 
    $("#serverResponse").dialog(); 
} 

然后做任何你想要的造型。如果没有javascript,纯文本div将显示,否则将显示为对话框。您可以使用noscript和重复的内容来消除内容在进入对话框之前的瞬间闪现。

+0

我更新了我的代码我有一些问题,当我加载窗体时,我看到图标显示在它写入的位置,当我提交给服务器并返回对话框没有出现,但结果显示在表单不在对话框中 – devdar