2012-11-26 95 views
1

我知道,无论何时提交表单,您都将刷新页面。但有没有一种使用JavaScript或任何其他方式,允许网页在输入提交按钮后再刷新一次?提交后额外刷新

非常感谢你们。

+1

你为什么要这样做?这听起来有点特别,你可以让你的提交朝着你的控制器中的一个新动作转发到你想要的视图。 – marko

+0

好吧,恩,因为我现在面临的是我的编辑页面。按下UPDATE按钮的提交按钮后。页面刷新和显示的值在更新之前。但是,当我再次刷新一次时,会显示更新后的值。这就是为什么我想在按下提交按钮后进行额外刷新。 – user1681961

+0

对不起,但它听起来像你有更大的问题迫在眉睫。我建议你稍微调整你的程序(就像我在下面建议的那样),你会看到这种问题消失了。 以生成的控制器为例。 –

回答

2

我在猜测你需要实现的是Post,Redirect,Get模式,这是Grails应用程序推荐的方式。如果你输入grails generate-controller [somedomainclassname],你会看到那个控制器实际上使用了这个模式。

其工作原理如下:

  1. 你的形式提交到控制器内的动作,我们称之为save()
  2. save()行动,那么执行必要的操作,以实际保存对象,当它完成,它发出的浏览器中的“重定向”,就像这样:redirect(action: "show", id: mySavedObject.id)
  3. 这将导致浏览器发出的URL/myController的/显示/ {ID}一个GET
  4. 即请求由回升您的控制器的动作。然后它继续显示刚刚创建的对象。

这种方法可以很好地处理HTTP语义,避免了最终用户烦恼的“你想重新发布你的表单数据”问题。

+0

感谢您的回答!我做了一个贴子操作,但是我需要的是POST操作之后的EXTRA刷新。 – user1681961

+0

@ user1681961只是做汉斯写的,应该照顾你的问题! – marko