<?page [id="..."] [title="..."] [style="..."] [cacheable="false|true"] [language="xul/html"] [zscriptLanguage="Java"] [contentType="text/html;charset=UTF-8"] [docType="tag PUBLIC "doctype name" "doctype UI""] [xml="version="1.0" encoding="UTF-8""] [complete="true|false"]?>
It specifies how a page shall be handled. The id and title arguments are the two most important ones.
[Optional][Default: false if Ajax devices, true if XML and MIL devices]
It specifies whether the client can cache the output.
Note: Browsers, such as Firefox and IE, don't handle the cache of DHTML correctly, so it is not safe to specify cacheable with true for Ajax devices.
[Optional][Default: false]
It specifies that this page is a complete page. By complete we mean the page has everything that the client expects. For example, if the client is a HTML browser, then a complete page will generate all necessary HTML tags, such as <html>, <head> and <body>.
By default (false), a ZK page is assumed to be complete if and only if it is not included by other page. In other words, if a ZK page is included by other page, ZK will generate <div> (if the client is a HTML browser) to enclose the output of the (incomplete) ZK page.
If you have a ZK page that contains a complete HTML page and is included by other page, you have to specify true for this option. For example, the includer is nothing but including another page:
//includer.jsp <jsp:include page="includee.zhtml"/>
And, the included page contains a complete HTML page:
<?page complete="true"?> <html xmlns="http://www.zkoss.org/2005/zk/native"><head> <title>My Title</tile> </head> <body> My Content
</body>
</html>
[Optional][Default: depends on the device]
It specifies the content type. If not specified, it depends on the device. For Ajax devices, it is text/html;charset=UTF-8. For XML and MIL devices, it is text/xml;charset=UTF-8.
Application developers rarely need to change it, unless for XML devices.
[Optional][Default: depends on the device]
It specifies the DOCTYPE (the root tag and DTD) that will be generated to the output directly. This directive is mainly used by XML devices. You rarely need to specify the DOCTYPE directive for Ajax or MIL devices. For example,
<?DOCTYPE value="svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd""?>
will cause the output to be generated with the following snippet
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"">
Notice that the <!DOCTYPE...> specified in a ZUML page is processed by ZK Loader. It is not part of the output.
[Optional][Default: generated automatically][EL allowed]
Specifies the identifier of the page, such that we can retrieve it back. If an alphabetical identifier is assigned, it will be available to scripts (aka., zscript) and EL expressions embedded in ZUML pages.
<?page id="${param.id}"?>
[Optional][Default: depending on the extension][Allowed values: xul/html | xhtml]
Specifies the markup language for this page. The markup language determines the default component set. Currently, it supports xul/html and xhtml.
Note: You can place the page directive in any location of a XML document, but the language attribute is meaningful only if the directive is located at the topmost level.
[Optional][Default: width:100%][EL allowed]
Specifies the CSS style used to render the page. If not specified, it depends on the mold. The default mold uses width:100% as the default value.
<?page style="width:100%;height:100%"?>
[Optional][Default: none][EL allowed]
Specifies the page title that will be shown as the title of the browser.
It can be changed dynamically by calling the setTitle method in the org.zkoss.zk.ui.Page interface.
<?page title="${param.title}"?>
[Optional][Default: none]
Specifies the xml processing instruction (i.e., <?xml?>) that will be generated to the output. Currently only XML devices support this option.
For example,
<?page xml="version="1.0" encoding="UTF-8""?>
will generate the following as the first line of the output
<?xml version="1.0" encoding="UTF-8"?>
[Optional][Default: Java][Allowed values: Java | JavaScript | Ruby | Groovy]
Specifies the default scripting language, which is assumed if an zscript element doesn't specify any scripting language explicitly.
<?page zscriptLanguage="JavaScript"?> <zscript> var m = round(box.value); //JavaScript is assumed. </zscript>
If this option is omitted, Java is assumed. Currently ZK supports four different languages: Java, JavaScript, Ruby and Groovy. This option is case insensitive.
Note: Deployers can extend the number of supported scripting languages. Refer to the How to Support More Scripting Language section in the Developer's Guide.