我正在尝试使用进度条来处理我的grails应用程序。我有一个src / groovy / MyClass.groovy,当从名为MyController的控制器类调用时,它会执行某些功能。当我点击MyWebpage.gsp上的提交按钮时,我需要在MyWebpage.gsp上显示MyClass.groovy完成的工作进度。
我提到this ,但我不理解的是代码的这一部分:
<g:form>
<g:submitToRemote action="executeAction" name="progressButton" value="start...."/>
</g:form>
这是什么executeAction和progressButton?文档中没有太多信息。对不起这个基本问题。此外,如果有人知道更好的方法来显示进度,请告诉我。感谢。
答案 0 :(得分:0)
executeAction
是通过ajax调用的控制器操作(参见文档中的示例操作)
def executeAction = {
for (int i = 1; i <= 100; i++) {
//this updates the progress bar value for the progress id 123
progressService.setProgressBarValue("123", i)
//let's waste some time
for (int a = 0; a < 10000; a++) {
for (int b = 0; b < 1000; b++) {
}
}
}
render "the progress is done"
}
progressButton
应该是按钮的名称,稍后会从<g:jprogressDialog progressId="123" trigger="progressButton"/>
行使用,以更新客户端上的状态栏。
但是,当你问一个替代方案,我建议,为此使用普通的jquery(-ui)。将诸如jquery-ui progressbar之类的东西与jquery ajax调用结合起来应该可以解决问题。这方面的例子是here。