Grails webflow-将基于动作的转换为web流
我们的应用程序正在使用控制器中的正常操作工作,但是从一个页面返回到另一个页面有一些困难。我的任务是将其转换为使用web流,我遇到了各种各样的障碍。非常感谢您的建议和见解 控制器具有列表、查看、创建、签名和打印操作。我已经做到了:Grails webflow-将基于动作的转换为web流,grails,Grails,我们的应用程序正在使用控制器中的正常操作工作,但是从一个页面返回到另一个页面有一些困难。我的任务是将其转换为使用web流,我遇到了各种各样的障碍。非常感谢您的建议和见解 控制器具有列表、查看、创建、签名和打印操作。我已经做到了: def index = { redirect (action: "someFlow") } def someFlow = { init { // some object settings } on("success").
def index = {
redirect (action: "someFlow")
}
def someFlow = {
init {
// some object settings
}
on("success").to("list")
list {
}
on("create").to "create"
on("view).to "view"
create {
}
on("next").to "sign"
on("cancel).to "list"
view {
}
on("edit").to "create"
on("back").to "list"
sign {
}
on("done").to "list"
on("back").to "create"
edit {
}
on("done").to "view"
}
当我用调试器跟踪它时,它似乎会连续命中每个状态,而不做任何操作或在任何页面上停止。然后返回列表状态
如果我单击“创建”的链接,我会看到一个网页,告诉我“资源(/directory path/create)不可用。”
但是如果它能找到list.gsp,为什么它不能找到create.gsp呢
我觉得我在黑暗中盲目地摸索;这些书似乎都没有提到这一点,我也找不到任何其他资源来说明它为什么会这样。有人有主意吗
谢谢。打开”语句需要在闭包内。例如,这:
list {
}
on("create").to "create"
on("view").to "view"
应该是这样的:
list {
on("create").to "create"
on("view").to "view"
}
这至少可以解决在整个流程中飞行的问题。至于找不到GSP,您需要在文件夹中为控制器创建一个文件夹(名为“some”)。将流程中每个操作的GSP放在这里
话虽如此,我同意Rob的观点,即它似乎不是一个很好的webflow候选者。为了获得更多信息,你能给我们一个目录列表,列出你的应用程序/grails应用程序/views/someFlow/?另外,也许我遗漏了一些东西,但是你所制定的行动看起来并不是很好的WebFlow候选方案。这些只是标准的(搭建的)Grails控制器操作吗?如果是这样的话,我不认为使用WebFlow是在它们之间导航的最佳方法。也许你可以评论一下你的“从一页倒退到另一页的困难”是什么。还有一个更好的解决方案。另外,最后一个注释-您的
列表中缺少一个“
”
。“查看”-您的实际代码中也缺少该注释吗?因此,对于.gsp文件,目录结构如下所示:my_application/grails app/views/someFlow/。当然,控制器是控制器目录中的一级。标准的grails设置真的很好。至于这是否真的是webflows的最佳候选者,这并不完全取决于我。这就是我的任务。同时,我对这个例子表示歉意。我确实用完整的引号引用了on(“视图”),是的,“on”语句在大括号内。