我正在使用Grails ajaxflow插件来创建基本向导。我遇到的一个问题是默认使用的控制器操作命名。具体来说,假设我有一个名为ThingController的控制器,其中默认流程名为pagesFlow。这会在执行期间生成一个向导URL。
/thing/pages?execution...
通常,向导旨在允许添加“内容”。事实上,我更喜欢一个表明这样的网址。
/thing/add?execution...
有没有办法,可以通过更改pagesFlow定义,还是通过自定义网址映射来实现此结果?
我曾两次尝试过,没有运气。 ajaxflow插件似乎需要这个默认命名,而且我还不太了解url映射。
答案 0 :(得分:1)
我没有特别使用ajaxFlow,但之前我曾使用过grails webflow。一般来说,你所要求的是不可能的,因为webflow基本上管理不同的“动作”,例如添加/删除/更新等,以便在场景后面进行流动,因此只显示流程名称“pages”。
但是,如果你真的想拥有一个独特的名称,我能想到的唯一解决方法是使用webflow的子流功能。 webflow文档是grails doc http://grails.org/doc/latest/guide/theWebLayer.html#subflowsAndConversations的一部分。
这个想法是子流只是您定义的另一个流。流可以调用另一个流,并使第二个流将结果返回到第一个流。因此,在您的情况下,您将使用主流程调用addFlow,updateFlow等。从概念上讲,即使您的所有操作都属于单个流程,也没有什么能阻止您将每个操作分解为自己的流程。这样,您就可以使用您的URL名称来反映您的操作。您甚至可以在不同的控制器中定义子流,这样您就可以在URL中影响控制器名称。