coldfusion - 测试 ColdFusion 中 FORM 范围/结构的存在

标签 coldfusion railo application.cfc

问题:请求 WSDL 时对于 CFC ,我收到以下错误:变量形式未定义。它发生在这行代码中,在 application.cfc 中的 OnRequestStart 方法中

<cfif structKeyExists(form,'resetappvars')>
    <cfset OnApplicationStart() />
</cfif>

如果我请求一个特定的方法,它工作正常。我考虑过使用 cfparam 创建一个默认的表单结构(如果不存在的话),但这似乎是一个丑陋的 hack,我担心它实际上会在变量或 CFC 的这个范围内创建表单结构。也许这也是一个合理的错误?

注意:这仅在我请求 WSDL 时发生,如果我直接调用方法 - 代码按预期执行而没有问题。

更新 Application.cfc 代码示例 - 只需将任何 CFC 添加到您的应用程序并使用 ?wsdl 请求它即可查看问题。这已在 ColdFusion 7 和 ColdFusion 8 上测试(并失败)。

<cfcomponent output="false">

    <cffunction name="OnApplicationStart" access="public" returntype="boolean" output="false" hint="Fires when the application is first created.">
        <cfset application.dsn = "my_dsn" />
        <cfreturn true />
    </cffunction>

    <cffunction name="OnRequestStart" access="public" returntype="boolean" output="false" hint="Fires at first part of page processing.">
        <cfargument name="TargetPage" type="string" required="true" />
        <cfif structKeyExists(form,'resetappvars')>
            <cfset OnApplicationStart() />
        </cfif>
        <cfreturn true />
    </cffunction>
</cfcomponent>

最佳答案

也许尝试添加:

 <cfif IsDefined("form")>...</cfif>

围绕上面的代码?

关于coldfusion - 测试 ColdFusion 中 FORM 范围/结构的存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206683/

相关文章:

javascript - 如何在JQuery对话框中打开.cfm页面?

mysql - 使 API (Wordpress) 日期可与 Coldfusion 一起使用

linux - 使用 Railo 的 WebSockets 新手

ubuntu - Nginx client_max_body_size 在 AWS Elastic Beanstalk 上的 Docker 容器中不起作用

cookies - 如何确保 CFID 符合 PCI 合规性?

ColdFusion:是否存在 Application.cfm 优于 Application.cfc 的用例

Coldfusion 安全 cftp 超时

coldfusion - 清除 Coldfusion 生产服务器中的缓存

java - 在 ColdFusion 中以编程方式验证邮件服务器连接

coldfusion - Application.cfc 与 Application.cfm 在不同的文件夹中具有更高的优先级