2009-06-07 71 views

回答

6

我個人不希望ColdFusion包含這些標籤,因爲我並不總是輸出HTML。

另外,與PHP不同,沒有<?coldfusion>標記,或者您用來聲明CF應處理您的代碼的任何類似標記。所有ColdFusion標籤都以'cf'爲前綴,並且可以穿插普通的HTML代碼。請記住,要將輸出呈現給頁面,您必須使用'<cfoutput>'標記。即。

<cfset variables.firstName = 'My Name' /> 
<html> 
<head> 
    <title>ColdFusion Sample</title> 
</head> 
<body> 
Hello <cfoutput>#variables.firstName#</cfoutput> 
</body> 
</html> 
1

將其添加到您的信息源。即使它自動添加(它不會),你幾乎總是需要更多的控制(即設置你的元標籤)。

順便說一句,你甚至不需要這些標籤。以下片段應該在大多數瀏覽器中正確顯示。

<div> HI </div> 
+0

對不起,問這樣的問題,但我用的是CF支持標籤撲朔迷離的量相當混亂,但CF像PHP,你可以簡單地寫你的HTML像「 2009-06-07 19:51:57

+1

除非你試圖提高某些頁面的性能(比如沖洗頭文件以使外部文件開始加載),否則不需要刷新CF。 – SpliFF 2009-06-07 20:04:54

2

最簡單的方法我能想到explaing它的是:

CFML代碼檢索,計算並顯示一個HTML文檔中的信息。

所以,如果你使用任何類型的框架,標題包括每一頁上的文件將包含..

<HTML> <head></head><body> 

和頁腳頁面將包括..

</body> </HTML> 

當然,就像任何事情一樣,如果出於某種原因,你可以編程一些東西來爲你輸出。

我發現CFML是在HTML中保持可讀性的最簡單的語法,並且離開它不會有什麼大不了的。

希望有所幫助。

1

您可以創建一個自定義標籤來爲您做到這一點。

例如,在每一頁,你想你的標準模板,你可以使用類似:

<cf_page 
    title = "MyTitle" 
    styles = "base.css,form.css,theme.css" 
    > 

    Main Page Content 

</cf_page> 


然後,使這項工作,創建一個page.cfm看起來與此類似:

<cfswitch expression="#ThisTag.ExecutionMode#"> 

    <cfcase value="START"> 

     <cfcontent reset/><cfoutput><!DOCTYPE html> 
<html> 
    <head> 
     <title>#Attributes.Title#</title> 

     <cfif StructKeyExists(Attributes,'Styles')> 
     <cfloop index="CurStyle" list="#Attributes.Styles#"> 
      <link rel="stylesheet" href="#CurStyle#"/> 
     </cfloop> 
     </cfif> 

     <cfif StructKeyExists(Attributes,'Scripts')> 
      <cfloop index="CurScript" list="#Attributes.Scripts#"> 
       <script type="text/javascript" src="#CurScript#"></script> 
      </cfloop> 
     </cfif> 

     <cfif StructKeyExists(Attributes,'HeadContent')>#Attributes.HeadContent#</cfif> 
    </head> 
    <body> 
</cfoutput> 

    </cfcase> 

    <cfcase value="END"> 
     <cfoutput> 
     </body> 
</html></cfoutput> 
    </cfcase> 

</cfswitch> 
0

要回答你的問題,是的,你需要在頁面中包含標記。

正如其他海報所指出的,它可能是您希望輸出的HTML以外的內容,例如PDF文檔或JSON。 CF使這種東西非常簡單,這是它吸引人的一部分。

1

或者,進入基本模板設置並使用(meta.cfm,)header.cfm,sidebar.cfm,footer.cfm並在每個頁面上使用<cfinclude template="">標記。更好的是,使用一個框架來通過控制器來管理所有這些,然後使得不同格式的內容輸出變得更簡單。

1

不,ColdFusion的將不包括任何你不告訴它。

對於需要一個HTML/BODY標籤的一般網頁(即不是一個代碼塊被粘貼在),你可以做任何數量的自定義功能/標籤輸出HTML/BODY標籤,但總體而言,最簡單的就是最可能只是輸入。

現在,你可以使用一些頁眉/頁腳代碼的堅持他們在自動,但可能會導致需要更多的邏輯,以排除它們在某些情況下。如果你正在尋找簡單的東西,這可能會矯枉過正。

注意,有一些小部件的CF規定,會產生一些HTML。所以,例如CFTABLE會在某個級別產生一個TABLE標籤。但這主要是簡化表格創建的一種方式,而HTML/BODY不能簡單得多。

1

如果......並且這是一個很大的IF ......如果您不介意每個請求都包含開始和結束HTML標記,則可以將它們添加到您的Application.cfm/OnRequestEnd.cfm或Application.cfc中。

Application.cfm:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html> 
<head> 
    <title>Page title here</title> 
</head> 
<body> 

OnRequestEnd.cfm:

</body> 
</html> 

或者的Application.cfc - OnRequest():

<cffunction name="OnRequest" output="true" returntype="void"> 

    <cfargument name="targetPage" type="string" required="true"> 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

    <html> 
    <head> 
     <title>Page title here</title> 
    </head> 
    <body> 
     <cfinclude template="#ARGUMENTS.targetPage#"> 
    </body> 
    </html> 

</cffunction> 

不,這不是因爲最好的方法這是非常有限的,但它是另一種方式! :OD