![](/img/trans.png)
[英]How can I have ColdFusion tags in a variable and have them evaluated?
[英]attributes.someParam cannot be evaluated in coldfusion
我在cfm中有這樣的內容
<CFModule name="MyModule"
someParam_one="#something.one#"
someParam_two="#something.two#"
someParam_etc="etc_etc_etc"/>
在我的模塊中,我有一個
<CFSet param_name = "someParam_one">
...
evaluate("attributes." & param_name)
在我們大多數的服務器上,這項工作。 但是在我們的一台服務器上,我得到了一個
錯誤解析參數ATTRIBUTES.SOMEPARAM_NAME
有什么想法嗎?
謝謝
您是否已驗證someParam_one實際上正在創建? 例如,我發現如果我做這樣的事情:
<cfset foo = myObject.getSomething() />
並且getSomething返回一個void值或運行一個不返回任何內容的Java函數,CF會阻塞它。 該變量將是“定義的”,或者使應用程序似乎認為,但是嘗試訪問該變量將引發錯誤。 因此,請執行以下操作以查找並發現問題:
轉儲您的屬性范圍,以確保所需的確實存在。
在嘗試訪問變量之前,請運行StructKeyExists(Attributes,param_name)。
擺脫評估,而使用Attributes [param_name]
與您的問題相切,但Evaluate()
是邪惡的,在這種情況下是不必要的邪惡。 您可以改為編寫此代碼,它將更加清晰,安全和快捷:
<cfset param_name = "someParam_one">
...
<cfset param_value = Attributes[param_name]>
好吧,我們做了一些非常愚蠢的事情:-)
我們部署了兩組這樣的文件,其中一組已更新,而另一組未更新,因此發生了錯誤。
感謝你的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.