在 Model-Glue 中重定向

Redirect in Model-Glue

在将此应用程序从外部服务器移至我们的内部服务器之前,我们正在 运行 并行处理该应用程序。它是一个由两部分组成的应用程序:public/unsecured 部分(目录 A)和安全部分(目录 B)。全部连接在 Model-Glue/Coldspring 中。

作为用户注册过程的一部分,存在从目录 A 到 B 的重定向。但是,这会产生错误:"Model-Glue: There is no known event handler for '/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 解决方案,而且看起来像是 hack。也许,我应该指出代码在外部服务器上的生产环境中工作,但在我们的开发环境中失败。

如有任何帮助,我们将不胜感激。谢谢

一个旧线程,可能对以后的人有帮助。

要记住的事情。

<result> 需要三个属性。

  1. name :应该是你从控制器设置的结果名称。
  2. do : 当这个name的结果创建时需要执行的事件。
  3. redirect : 判断是否重定向到的条件。

所以基于这些条件。理想情况下,您的 <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>

一旦你在emailRegisterAction函数中设置了<cfset arguments.event.addResult("goToX")>,那么页面将重定向到do.eventToXFile事件,然后执行x.cfm