首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Coldbox推荐的访问旧式应用程序cfc内变量集的方法

Coldbox推荐的访问旧式应用程序cfc内变量集的方法
EN

Stack Overflow用户
提问于 2018-01-12 13:14:03
回答 1查看 588关注 0票数 2

我正在将Coldbox添加到我们的遗留应用程序中,我遇到了一个问题,在使用Coldbox时,我们无法从视图中访问某些变量。在onRequestStart方法的Application.cfc中的现有遗留代码中,我们设置了几个变量,如下所示:

代码语言:javascript
复制
VARIABLES.screenID  = 0;
VARIABLES.DSN               = 'datasourcemain';
VARIABLES.DSNRO             = 'datasourcereadonly';
VARIABLES.DSNADMIN          = 'datasourceadmin';
VARIABLES.pagetitle         = "Default Page Title for web application";

这只是变量集的一小部分。问题是,在遗留代码中,这些都被使用得到处都是,比如页眉和页脚。当浏览到遗留页面时,这些变量仍然是可访问的,但是当通过coldbox发送请求时,变量变得不可访问。我的问题是,有没有推荐的方法可以让Coldbox知道这些变量,并将它们传递给视图,这样我就不必修改数百个文件?

EN

回答 1

Stack Overflow用户

发布于 2018-01-13 08:22:43

这取决于,有几个地方可以定义这样的变量。从给定的有限信息中,我建议您将数据源信息添加到Coldbox.cfc > datasources结构(#1),并将默认pageTitle添加到全局请求处理程序(#2)。至于screenID,谁知道呢--祝你好运!

  1. config/Coldbox.cfc同时具有settingsdatasources结构,可以通过wirebox注入到处理程序/控制器中。

//使用设置属性名进行依赖注入=‘inject='coldbox:settings';

  • Use’设置全局请求处理程序,并将所有全局变量添加到控制器和视图可见的prc (私有请求上下文)中。

//config/Coldbox.cfc ...coldbox ={ requestStartHandler:'Main.onRequestStart‘};... // handlers/Main.cfc组件扩展=’coldbox.system.EventHandler‘{ function onRequestStart( event,rc,prc) { prc.screenID = 0;prc.DSN = 'datasourcemain';prc.DSNRO = 'datasourcereadonly';prc.DSNADMIN = 'datasourceadmin';prc.pagetitle =“web应用程序的默认页面标题”;}}

  • 使用请求拦截器并向prc添加数据。

//config/Coldbox.cfc ...拦截器={ class="interceptors.Globals“};... //拦截器/Globals.cfc组件{ property name='legacyGlobals‘inject='LegacyGlobals';函数preProcess(interceptData,interceptData) { event.setPrivateValue('someLegacyGlobalVar',legacyGlobals.getSomeLegacyGlobalVar() );} }

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48219946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档