ColdFusion会自动生成基本的HTML标记,如:
<HTML> <head></head> <body></body> </HTML>
或者您是否必须在源代码中包含它,如ASP或PHP?
答案 0 :(得分: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 :(得分:2)
我能想到解释它的最简单的方法是:
CFML代码检索,计算和显示HTML文档中的信息。
因此,如果您使用的是任何类型的框架,每个页面上的标题包含文件都将包含..
<HTML> <head></head><body>
页脚页面将包含..
</body> </HTML>
当然,就像任何事情一样,如果出于某种原因你想要,你可以编程一些东西来输出这些也适合你。
我发现CFML是最容易在HTML中保持可读性的语法,离开它并不是什么大不了的事。
希望有所帮助。
答案 2 :(得分:1)
将其包含在您的来源中。即使它确实自动添加它们(它没有),你几乎总是需要更多控制(即设置元标记)。
顺便说一下,你甚至不需要这些标签。以下代码段应在大多数浏览器中正确显示。<div> HI </div>
答案 3 :(得分: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>
答案 4 :(得分:1)
或者,进行基本模板设置并使用(meta.cfm,)header.cfm,sidebar.cfm,footer.cfm并在每个页面上使用<cfinclude template="">
标记。甚至比这更好,使用框架通过控制器管理所有这些,这将使不同格式的内容输出更简单。
答案 5 :(得分:1)
不,Coldfusion不会包含任何你不告诉它的东西。
对于需要HTML / BODY标记的一般页面(即不是要粘贴的代码块),您可以使用任意数量的自定义函数/标记来输出HTML / BODY标记,但总体上最简单的是只需输入它们。
现在,您可以使用一些页眉/页脚代码自动粘贴它们,但这可能导致在某些情况下需要更多逻辑来排除它们。如果你正在寻找简单的东西,这可能是一种过度的。
请注意,CF提供的一些小部件将生成一些html。因此,例如CFTABLE将在某个级别产生TABLE标记。但这主要是一种简化表创建的方法,而HTML / BODY则不会简单得多。
答案 6 :(得分: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
答案 7 :(得分:0)
要回答您的问题,是的,您需要在页面中包含标记。
正如其他海报所指出的那样,它可能是您想要输出的HTML以外的内容,例如PDF文档或JSON。 CF使这种东西变得非常简单,这是它吸引力的一部分。