Coldfusion CFOUTPUT查询变量名在CF11 Linux上不起作用

Coldfusion CFOUTPUT查询变量名在CF11 Linux上不起作用,coldfusion,Coldfusion,我试图从一个结构中引用一个查询,并在其他cfm文件中使用它,但我从CF11 Linux中得到这个错误消息:标记cfoutput的属性验证错误。当前为Application.SRS.RequestTypes的属性查询的值无效。' 它在CF9窗口服务器上工作 代码如下: entry.cfm <script type="text/javascript"> function setTypeDesc( request_type ) { <CFOutput Query=

我试图从一个结构中引用一个查询,并在其他cfm文件中使用它,但我从CF11 Linux中得到这个错误消息:标记cfoutput的属性验证错误。当前为Application.SRS.RequestTypes的属性查询的值无效。'

它在CF9窗口服务器上工作

代码如下:

entry.cfm

<script type="text/javascript">
    function setTypeDesc( request_type ) {
      <CFOutput Query="Application.SRS.RequestTypes">
        if ( request_type == "#request_type_code#" ) {
          document.getElementById( "TypeDesc" ).innerHTML = "#JSStringFormat( request_type_desc )#";
        }
      </CFOutput>
      if ( request_type == "A" ) {
        document.getElementById( "Developer_Label" ).className = "req";
        this.form.Developer.value = '#UCase( Request.LogonID )#';
        this.form.Developer.onblur();
      } else {
        document.getElementById( "Developer_Label" ).className = "";
      }
    }
  </script>
load-type.cfm:查询语句

<CFQuery Name="RequestTypes" DataSource="#Application.SRS.AppDataSource#" BlockFactor="100">
    SELECT 
    FROM srs_type
    ORDER BY request_type_code
</CFQuery>
<CFLock Timeout="60" ThrowOnTimeout="Yes" Type="EXCLUSIVE"  Scope="APPLICATION">
    <CFSET Application.SRS.RequestTypes = RequestTypes>
    <CFModule Template="#Application.ModuleDir#/query-to-struct.cfm"
        DataQuery="#RequestTypes#"
        KeyFieldList="request_type_code"
        VariableName="Application.SRS.RequestTypesStruct">
</CFLock>
query-to-struct.cfm:

<CFParam Name="Attributes.DataQuery" Type="query">
<CFParam Name="Attributes.KeyFieldList" Type="string">
<CFParam Name="Attributes.VariableName" Type="string">

<CFSET ResultStruct = StructNew()>
<CFOutput Query="Attributes.DataQuery">
    <CFSET KeyString = "">
    <CFLoop List="#Attributes.KeyFieldList#" Index="field">
        <CFSET KeyString = ListAppend( KeyString, Evaluate( field ) )>
    </CFLoop>
    <CFSET ResultStruct[KeyString] = StructNew()>
    <CFLoop List="#Attributes.DataQuery.ColumnList#" Index="col">
        <CFSET ResultStruct[KeyString][col] = Evaluate( col )>
    </CFLoop>
</CFOutput>

<CFIF Attributes.VariableName contains ".">
    <CFSET "#Attributes.VariableName#" = ResultStruct>
<CFELSE>
    <CFSET "Caller.#Attributes.VariableName#" = ResultStruct>
</CFIF>

在您的CF10服务器上,输入cfdump Application.SRS.RequestTypes并查看是否定义了它。如果不是,请尝试调试您的代码,并查看为什么没有调用load-type.cfm。您确定该错误甚至与您向我们显示的代码有关吗?这是关于SRS的,严重的代码。我只能在您的代码中找到对SBS.RequestType的引用。我更新了错误消息,应该是Application.SRS.RequstTypes。我现在可以找到的解决方案是添加到我的第一个fileentry.cfm。它不需要添加到CF9窗口服务器上。您可以阅读以下内容