在将这个应用程序从外部服务器移动到我们的内部服务器之前,我们正在并行运行。它是一个由两部分组成的应用程序:公共/非安全部分(目录a)和安全部分(目录B)。它们都在Model-Glue/Coldspring中连接。
作为用户注册过程的一部分,从目录a重定向到B。然而,这会产生一个错误:"Model-Glue:没有已知的'/path/to/Directory B/x.c m'的事件处理程序。"
下面是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解决方案,似乎是一个黑客。也许,我应该指出代码在外部服务器的生产环境中工作,但在我们的开发环境中失败。
任何帮助将不胜感激。由于
一个老帖子,也许将来会对某人有所帮助。
要记住的事情。
<result>
需要三个属性。
-
name
:应该是您从控制器设置的结果名称。 -
do
:创建此name
结果时需要执行的事件。 -
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
。