2010-11-13 35 views
0

由於這一問題的一個簡單的例子:的ColdFusion cfsavecontent html頁面

<cfsavecontent variable = "pageOutput"> 
    <cfoutput> 
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     <html xmlns="http://www.w3.org/1999/xhtml"> 
     <head> 
     <title>#page_title#</title> 
     </head> 
     <body> 
     <cfdump var="#URL#"> 
     </body> 
     </html> 
    </cfoutput> 
</cfsavecontent> 

我這個頁面保存到磁盤。然後,當我通過以下網址調用這個新生成的頁面:

http://blah/products.cfm?search_keyword=bathroom&search_category=451&search_province=Auckland

轉儲不顯示新通過URL瓦爾。

我很明顯錯過了這裏很基本的東西。

回答

0

如果我正確理解你的解釋,你有cfsavecontent pagevariables生成的已經取代,讓你有靜態的HTML products.cfm。嘗試在編輯器中打開它並查看代碼。

我有問題:這裏使用cfsavecontent的目的是什麼?你想達到什麼目的?看起來你可能根本不需要它,普通的CFML應該完成這項工作。

+0

我已經簡化了它,使它更容易解釋。相信我,我需要cfcontent。當然,頁面變量已被替換。這是我希望得到答案的問題。 – Paul 2010-11-13 11:45:34

+0

對不起,這樣簡化的問題讓我覺得你在理解CFML基礎知識方面遇到了麻煩。很高興聽到您找到解決方案。 – Sergii 2010-11-13 15:35:35

1

您需要做的是替換標籤的開啓或關閉部分,以便在輸出時您有一個有效的標籤。事情是這樣的:

<cfsavecontent variable="page"> 
<cfset sCfO = "<" > 
<cfset sCfC = "</" > 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title><cfoutput>#page_title#</cfoutput></title> 
    </head> 
    <body> 
    <cfoutput>#sCFO#</cfoutput>cfdump var="#URL#"> 
    <cfoutput>#sCFO#</cfoutput>cfoutput> 
      #URL.myMessage# 
     <cfoutput>#sCFC#</cfoutput>cfoutput> 
    </body> 
    </html> 

希望這是有道理的......

0

我會更傾向於隱藏在一個函數,它會讀取你的例如,你可以調用dumpVariable好得多( url)並將其封裝在一個函數中。實際上,我們必須通過將自定義標記從數據庫解析爲使用cfmodule進行實際實現的渲染函數來執行類似的操作。我對結果非常滿意,並且比任意字符替換更容易知道代碼中發生了什麼。