模型胶中的重定向

时间:2015-09-08 21:05:36

标签: redirect event-handling model-glue coldspring

在将此应用程序从外部服务器移动到内部服务器之前,我们正在并行运行此应用程序。它是一个两部分应用程序:公共/不安全部分(目录A)和安全部分(目录B)。它全部都连接在Model-Glue / Coldspring中。

作为用户注册过程的一部分,存在从目录A到B的重定向。然而,这会产生错误:" Model-Glue:没有用于' / path的已知事件处理程序/ to / Direcory B / x.cfm'。"

以下是ModelGlue代码段:

<event-handler name="do.emailUser">
    <broadcasts>
        <message name="emailRegisterAction" />
    </broadcasts>
    <results>
        <result do="/path/to/directory B/x.cfm" redirect="true" />
    </results>
    <views />
</event-handler>

我曾尝试将共享文件复制到目录A,但这不是一个DRY解决方案,而且看起来像是黑客攻击。也许,我应该指出代码在外部服务器上的生产中工作,但在我们的开发环境中失败。

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

一个旧线程,将来可能会帮助某人。

要记住的事情。

<result>需要三个属性。

  1. name:假设您是从控制器设置的结果名称。
  2. do:创建此name的结果时需要执行的事件。
  3. redirect:说明是否重定向的条件。
  4. 所以基于这些条件。理想情况下,您的<event-handler>应该看起来像这样。

    <event-handler name="do.emailUser">
        <broadcasts>
            <message name="emailRegisterAction" />
        </broadcasts>
        <results>
            <result name="goToX" do="do.eventToXFile" redirect="true" />
        </results>
        <views />
    </event-handler>
    <event-handler name="do.eventToXFile">
        <broadcasts>
            <message name="yourMessageListner" />
        </broadcasts>
        <results>
            <result do="view.template" />
        </results>
        <views>
            <include name="body" template="/path/to/directory B/x.cfm" />
        </views>
    </event-handler>
    

    <cfset arguments.event.addResult("goToX")>功能中设置emailRegisterAction后,该页面将重定向到do.eventToXFile事件,而x.cfm事件又会执行ALTER TABLE sample ADD COLUMN `hasItem` tinyint(1) DEFAULT NULL