grails - 如何更改或映射Grails ajax Webflow操作名称?

标签 grails

我正在使用Grails ajaxflow插件来创建基本向导。我有一个问题是默认情况下使用的 Controller Action 命名。具体来说,假设我有一个名为ThingController的 Controller ,其中默认流名为pagesFlow。这样会在执行过程中产生一个向导URL。

/thing/pages?execution...

通常,该向导旨在允许添加“事物”。照原样,我希望显示这样的网址。
/thing/add?execution...

是否有办法通过更改pagesFlow定义或通过自定义url映射来实现此结果?

我曾经短暂地尝试过两者,但都没有运气。 ajaxflow插件似乎需要此默认命名,而且我还不太了解url映射。

最佳答案

我没有专门使用ajaxFlow,但之前我已经使用过grails webflow。通常,您所要求的是不可能的,因为webflow基本上为幕后流程管理不同的“ Action ”,例如添加/删除/更新等,因此仅公开流程名称“pages”。

但是,如果您真的想使用一个不同的名称,我能想到的唯一解决方法是使用webflow的子流功能。 Webflow文档是grails doc http://grails.org/doc/latest/guide/theWebLayer.html#subflowsAndConversations的一部分。

想法是子流只是您定义的另一个流。流可以调用另一个流,并让第二个流将结果返回到第一个流。因此,在您的情况下,您将具有主要流程调用addFlow,updateFlow等。从概念上讲,即使您的所有 Action 都属于一个流程,也没有阻止您将每个流程分解成自己的流程的事情。这样,您就可以使URL名称反射(reflect)您的操作。您甚至可以在其他 Controller 中定义子流,以便可以影响URL中的 Controller 名称。

关于grails - 如何更改或映射Grails ajax Webflow操作名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157655/

相关文章:

java - Grails - 创建数据库 View

唯一/保存/更新的Grails问题

grails - 无法将类 'jxl.biff.EmptyCell@47821b4b'的对象 'jxl.biff.EmptyCell'强制转换为类 'jxl.DateCell'

grails - 在抽象类中建立双向关系

java - 在 ubuntu 中运行 grails 应用程序时无法找到 java 编译器 com.sun.to

grails - UrlMapping::匹配 block 中的 View 属性被忽略

grails - 为什么这是一个无效的 hql 查询?

java - 使用 Quartz 和 RabbitMQ 在 Grails 应用程序中写入 NFS 下的文件

Grails - 域记录未在 .Save() 上更新

grails - 在同一个域类上多对多