【问题标题】:How to change or map Grails ajax webflow action name?如何更改或映射 Grails ajax webflow 操作名称?
【发布时间】:2012-06-22 13:58:38
【问题描述】:

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

/thing/pages?execution...

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

的 url
/thing/add?execution...

有没有办法,或者通过改变 pagesFlow 定义,或者通过自定义 url 映射来实现这个结果?

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

【问题讨论】:

    标签: grails


    【解决方案1】:

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

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

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

    【讨论】:

    • 我也得出了这个结论,不过你的回答肯定让我更快到达那里。谢谢你。事实上,webflows 最终对我的问题来说太过分了,导致比他们解决的问题更多的头痛。真的很不幸。
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多