0

我正在使用 Grails ajaxflow插件来创建基本向导。我遇到的一个问题是默认使用的控制器操作命名。具体来说,假设我有一个名为 ThingController 的控制器,其中默认流名为 pagesFlow。这会在执行过程中产生一个向导 url,因此..

/thing/pages?execution...

通常,该向导旨在允许添加“事物”。事实上,我更喜欢一个表明这样的 ..

/thing/add?execution...

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

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

4

1 回答 1

1

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

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

这个想法是子流只是您定义的另一个流。流可以调用另一个流并让第二个流将结果返回给第一个流。因此,在您的情况下,您的主要流程将调用 addFlow、updateFlow 等。从概念上讲,即使您的所有操作都属于单个流程,也没有什么能阻止您将每个操作分成自己的流程。这样,您的 URL 名称就可以反映您的操作。你甚至可以在不同的控制器中定义你的子流,这样你就可以影响 url 中的控制器名称。

于 2012-06-25T14:14:58.077 回答