如何批量添加属性ColdFusion标记

如何批量添加属性ColdFusion标记,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,我很好奇是否有办法强制ColdFusion标记将属性作为默认值保存,例如cfquery中的数据源 比如说,不要写 <cfquery datasource="mydatasource"> 我会写字 <cfquery> 系统会自动知道数据源是“mydatasource” 如果这是可能的话,那就太酷了 对于数据源来说,这实际上是可能的,但不是所有的事情 您可以将this.datasource=“mydatasource”设置为应用程序中的默认数据源。

我很好奇是否有办法强制ColdFusion标记将属性作为默认值保存,例如cfquery中的数据源

比如说,不要写

   <cfquery datasource="mydatasource"> 

我会写字

   <cfquery> 

系统会自动知道数据源是“mydatasource”


如果这是可能的话,那就太酷了

对于数据源来说,这实际上是可能的,但不是所有的事情

您可以将
this.datasource=“mydatasource”
设置为
应用程序中的默认数据源。cfc


对于数据源来说,这实际上是可能的,但不是所有的东西都可以

您可以将
this.datasource=“mydatasource”
设置为
应用程序中的默认数据源。cfc


您的问题的实际答案是
自定义标记。您可以扩展ColdFusion标记的功能以满足您的需要

cfquery
标记为例,并在其周围包装一个自定义标记。将
cfquery
的参数所需的所有默认值提供到标记的属性default中

因此,基本上,您的自定义标记页类似于:

flexeQuery.cfm


您的问题的实际答案是
自定义标记
。您可以扩展ColdFusion标记的功能以满足您的需要

cfquery
标记为例,并在其周围包装一个自定义标记。将
cfquery
的参数所需的所有默认值提供到标记的属性default中

因此,基本上,您的自定义标记页类似于:

flexeQuery.cfm



有没有办法添加其他属性?例如,添加cachedwithinEverything我读到的任何东西都表明答案是否定的。无论如何,为什么要将每个查询缓存相同的时间?@RobinSaunders您是否使用了
attributeCollection
@特罗斯只是好奇:P@RejithRKrishnan不,但这是一个很好的工具,为今后的道路!泰!有没有办法添加其他属性?例如,添加cachedwithinEverything我读到的任何东西都表明答案是否定的。无论如何,为什么要将每个查询缓存相同的时间?@RobinSaunders您是否使用了
attributeCollection
@特罗斯只是好奇:P@RejithRKrishnan不,但这是一个很好的工具,为今后的道路!泰!您应该指定正在使用哪个版本的ColdFusion。跨越8/9/10。但出于我们的目的,我们可以使用9。您应该指定您正在使用哪个版本的ColdFusion。跨越8/9/10。但是出于我们的目的,我们可以使用9。我没有时间尝试它,但是如果他们使用cfqueryparam会发生什么呢?我怀疑它会为cfqueryparam抛出一个错误。然而,这是一个很好的答案。这个问题是一般性的。Cfquery是作为一个例子来说明的,它也有一个解决方案。您可以创建自己的子标记,如
。它传递给父标记的数据的处理以及父标记中这些参数的实际绑定本身就是一个非常有趣的话题。但是,可以让自定义标记中的父子关系按照
cfquery
cfqueryparam
的方式执行,或者在http标记的类似行上执行
cfhttp
cfhttpparam
和邮件标记。您可以创建自己的子标记-@Anurag-当然可以,但我的问题是,该结构是否实际适用于
cfqueryparam
?通常,如果您尝试在
cfquery
之外使用该标记,如本例所示,CF会发出抱怨。我很好奇您是否真的验证了它与
cfqueryparam
一起工作。我没有时间尝试它,但是如果他们使用cfqueryparam会发生什么?我怀疑它会为cfqueryparam抛出一个错误。然而,这是一个很好的答案。这个问题是一般性的。Cfquery是作为一个例子来说明的,它也有一个解决方案。您可以创建自己的子标记,如
。它传递给父标记的数据的处理以及父标记中这些参数的实际绑定本身就是一个非常有趣的话题。但是,可以让自定义标记中的父子关系按照
cfquery
cfqueryparam
的方式执行,或者在http标记的类似行上执行
cfhttp
cfhttpparam
和邮件标记。您可以创建自己的子标记-@Anurag-当然可以,但我的问题是,该结构是否实际适用于
cfqueryparam
?通常,如果您尝试在
cfquery
之外使用该标记,如本例所示,CF会发出抱怨。我很好奇您是否真的验证了它与
cfqueryparam
一起工作。
<cfif THISTAG.ExecutionMode EQ 'end'>
    <cfparam name="Attributes.datasource" default="someDSN">
    <cfparam name="Attributes.cacheWithin" default="#CreateTimeSpan(0,6,0,0)#">
    <cfparam name="Attributes.maxRows" default="25">
    <cfparam name="Attributes.timeOut" default="600">
    <!--- some logic you want to perform --->
    <cfquery datasource="#Attributes.datasource#"
             cacheWithin="#Attributes.cacheWithin#"
             maxRow="#Attributes.maxRows#"
             timeOut="#Attributes.timeOut#"
          <cfoutput>#THISTAG.GeneratedContent#</cfoutput>
    </cfquery>
    <!--- Caller assignment and other processing --->
</cfif>
<cf_flexiquery>
  <!--- you query here --->
</cf_flexiquery>
<cf_flexiquery maxRows="100" timeOut="1200">
  <!--- you query here --->
</cf_flexiquery>