cfprocessingdirective
Description
Provides the following information to ColdFusion about how to process the current page:
Categories
Related
History
ColdFusion
MX:
Changed suppresswhitespace attribute
value behavior: you can specify the suppresswhitespace attribute
value as a string variable. (ColdFusion 5 supported setting it only
as a constant.)
Added the pageEncoding attribute.
Syntax
<cfprocessingdirective
pageencoding = "page-encoding literal string"/>
OR
<cfprocessingdirective
pageEncoding = "page-encoding literal string"
suppressWhiteSpace = "yes|no">
CFML tags
</cfprocessingdirective>
Attributes
| Attribute | Description | Required | Default |
|---|---|---|---|
| pageEncoding | A string literal; cannot be a variable. Identifies the character encoding of the current CFML page. This attribute affects the entire page, not just the cfprocessing tag body. The value may be enclosed in single- or double-quotation marks, or none. The following list includes commonly used values: utf-8 iso-8859-1 windows-1252 us-ascii shift_jis iso-2022-jp euc-jp euc-kr big5 euc-cn utf-16 For more information on character encodings, see www.w3.org/International/O-charset.html. | Optional | Character encoding identified by the page byte order mark, if any; otherwise, system default encoding |
| suppressWhiteSpace | Boolean; whether to suppress white space characters within the cfprocessingdirective block that are generated by CFML tags and often do not affect HTML appearance. Does not affect any white space in HTML code. | Optional |
Usage
The cfprocssingdirective tag has limitations that depend on the attribute you use. For this reason, Adobe recommends that you include either the pageencoding or suppresswhitespace attribute in a cfprocessingdirective tag, not both. To specify both values, use separate tags.
In a ColdFusion component (.cfc file), the cfprocessingdirective tag must follow the cfcomponent tag.
If you use the pageEncoding attribute, the following rules apply:
You must put the tag within the first 4096 bytes of a page. It can be positioned after a cfsetting or cfsilent tag.
If you use the tag on a page that includes other pages by using the cfinclude or cfmodule tags, custom tag invocation, and so on, the tag has no effect on the included pages.
You cannot embed the tag within conditional logic, because the pageEncoding attribute is evaluated when ColdFusion compiles a page (not when it executes the page). For example, the following code has no effect at execution time, because the cfprocessingdirective tag has already been evaluated:
<cfif dynEncoding is not "dynamic encoding is not possible"> <cfprocessingdirective pageencoding=#dynEncoding#> </cfif> If you have multiple cfprocessingdirective tags in one page that specify the pageEncoding attribute, they must all specify the same value; if not, ColdFusion throws an error.
If you specify only the pageencoding attribute, do not use a separate end tag.
ColdFusion accepts character encoding names that are supported by the Java platform. If an invalid name is specified, ColdFusion throws an InvalidEncodingSpecification exception.
If a page has a byte order mark (BOM), and a pageencoding attribute specifies an encoding that differs from the BOM, ColdFusion generates an error.
The following rules apply to the suppressWhiteSpace attribute:
You can specify the suppresswhitespace attribute value as a constant or a variable. To use a variable: define the variable (for example, whitespaceSetting), assign it the value yes or no, and code a statement such as the following:
<!--- ColdFusion allows suppression option to be set at runtime ---> <cfprocessingdirective suppresswhitespace=#whitespaceSetting#> code to whose output the setting is applied </cfprocessingdirective> The suppresswhitespace attribute only affects code that you put between the <cfprocessingdirective> begin tag and the </cfprocessingdirective> end tag.
The following example shows the use of a nested cfprocessingdirective tag. The outer tag suppresses unnecessary whitespace during computation of a large table; the inner tag retains whitespace, to output a preformatted table.
In a ColdFusion component (.cfc file), the cfprocessingdirective tag must follow the cfcomponent tag.
If you use the pageEncoding attribute, the following rules apply:
You must put the tag within the first 4096 bytes of a page. It can be positioned after a cfsetting or cfsilent tag.
If you use the tag on a page that includes other pages by using the cfinclude or cfmodule tags, custom tag invocation, and so on, the tag has no effect on the included pages.
You cannot embed the tag within conditional logic, because the pageEncoding attribute is evaluated when ColdFusion compiles a page (not when it executes the page). For example, the following code has no effect at execution time, because the cfprocessingdirective tag has already been evaluated:
<cfif dynEncoding is not "dynamic encoding is not possible"> <cfprocessingdirective pageencoding=#dynEncoding#> </cfif> If you have multiple cfprocessingdirective tags in one page that specify the pageEncoding attribute, they must all specify the same value; if not, ColdFusion throws an error.
If you specify only the pageencoding attribute, do not use a separate end tag.
ColdFusion accepts character encoding names that are supported by the Java platform. If an invalid name is specified, ColdFusion throws an InvalidEncodingSpecification exception.
If a page has a byte order mark (BOM), and a pageencoding attribute specifies an encoding that differs from the BOM, ColdFusion generates an error.
The following rules apply to the suppressWhiteSpace attribute:
You can specify the suppresswhitespace attribute value as a constant or a variable. To use a variable: define the variable (for example, whitespaceSetting), assign it the value yes or no, and code a statement such as the following:
<!--- ColdFusion allows suppression option to be set at runtime ---> <cfprocessingdirective suppresswhitespace=#whitespaceSetting#> code to whose output the setting is applied </cfprocessingdirective> The suppresswhitespace attribute only affects code that you put between the <cfprocessingdirective> begin tag and the </cfprocessingdirective> end tag.
The following example shows the use of a nested cfprocessingdirective tag. The outer tag suppresses unnecessary whitespace during computation of a large table; the inner tag retains whitespace, to output a preformatted table.
Example
<cfprocessingdirective suppressWhiteSpace = "Yes">
<!--- CFML code --->
<cfprocessingdirective suppressWhiteSpace = "No">
<cfoutput>#table_data#
</cfoutput>
</cfprocessingdirective>
</cfprocessingdirective>
The following example
shows the use of the pageencoding attribute:
<cfprocessingdirective pageencoding = "shift_jis">