| <!-- $Id$ --> |
| <!-- |
| Copyright 2004 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <appendix id="spec"> |
| <title>Tapestry Specification DTDs</title> |
| |
| |
| <para> |
| This appendix describes the four types of specifications |
| used in Tapestry. |
| </para> |
| |
| <table> |
| <title>Tapestry Specifications</title> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Type</entry> |
| <entry>File Extension</entry> |
| <entry>Root Element</entry> |
| <entry>Public ID</entry> |
| <entry>System ID</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>Application</entry> |
| <entry>application</entry> |
| <entry>&spec.application;</entry> |
| <entry><literal>-//Apache Software Foundation//Tapestry Specification 3.0//EN</literal></entry> |
| <entry><literal>http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd</literal></entry> |
| </row> |
| |
| <row> |
| <entry>Page</entry> |
| <entry>page</entry> |
| <entry>&spec.page-specification;</entry> |
| <entry><literal>-//Apache Software Foundation//Tapestry Specification 3.0//EN</literal></entry> |
| <entry><literal>http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd</literal></entry> |
| </row> |
| |
| <row> |
| <entry>Component</entry> |
| <entry>jwc</entry> |
| <entry>&spec.component-specification;</entry> |
| <entry><literal>-//Apache Software Foundation//Tapestry Specification 3.0//EN</literal></entry> |
| <entry><literal>http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd</literal></entry> |
| </row> |
| |
| <row> |
| <entry>Library</entry> |
| <entry>library</entry> |
| <entry>&spec.library-specification;</entry> |
| <entry><literal>-//Apache Software Foundation//Tapestry Specification 3.0//EN</literal></entry> |
| <entry><literal>http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd</literal></entry> |
| </row> |
| |
| <row> |
| <entry>Script</entry> |
| <entry>script</entry> |
| <entry>&script-spec.script;</entry> |
| <entry><literal>-//Apache Software Foundation//Tapestry Script Specification 3.0//EN</literal></entry> |
| <entry><literal>http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd</literal></entry> |
| </row> |
| |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <para> |
| The four general Tapestry specifications (&spec.application;, &spec.component-specification; |
| &spec.page-specification; and &spec.library-specification;) all share the same DTD, but use different |
| root elements. |
| </para> |
| |
| <section id="spec.application"> |
| <title><sgmltag class="starttag">application</sgmltag> element</title> |
| |
| |
| <para> |
| <emphasis>root element</emphasis> |
| </para> |
| |
| <para> |
| The application specification defines the pages and components specific to a single Tapestry application. |
| It also defines any libraries that are used within the application. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">application</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>User presentable name of application.</entry> |
| </row> |
| <row> |
| <entry>engine-class</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>Name of an implementation of &IEngine; to instantiate. Defaults |
| to &BaseEngine; if not specified.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| |
| </informaltable> |
| </figure> |
| |
| <figure> |
| <title><sgmltag class="starttag">application</sgmltag> Elements</title> |
| <literallayout> |
| &spec.description; ?, &spec.property; *, |
| (&spec.page; | &spec.component-type; | &spec.service; | &spec.library; | &spec.extension;) * |
| </literallayout> |
| </figure> |
| |
| </section> <!-- spec.application --> |
| |
| <section id="spec.bean"> |
| <title><sgmltag class="starttag">bean</sgmltag> element</title> |
| |
| |
| <para> |
| Appears in: |
| &spec.component-specification; and &spec.page-specification; |
| </para> |
| |
| <para> |
| A <sgmltag class="starttag">bean</sgmltag> is used to add behaviors to a page or component via aggregation. |
| Each <sgmltag class="starttag">bean</sgmltag> defines a named JavaBean that is instantiated on demand. |
| Beans are accessed through the OGNL expression <literal>beans.<replaceable>name</replaceable></literal>. |
| </para> |
| |
| <para> |
| Once a bean is instantiated and initialized, it will be retained by the page or component |
| for some period of time, specified by the bean's lifecycle. |
| </para> |
| |
| <variablelist> |
| <title>bean lifecycle</title> |
| <varlistentry> |
| <term>none</term> |
| <listitem> |
| <para> |
| The bean is not retained, a new bean will be created on each access. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term>page</term> |
| <listitem> |
| <para> |
| The bean is retained for the lifecycle of the page itself. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term>render</term> |
| <listitem> |
| <para> |
| The bean is retained until the current render operation completes. |
| This will discard the bean when a page or form finishes rewinding. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term>request</term> |
| <listitem> |
| <para> |
| The bean is retained until the end of the current request. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| |
| </variablelist> |
| |
| <para> |
| Caution should be taken when using lifeycle <literal>page</literal>. A bean is associated |
| with a particular instance of a page within a particular JVM. Consecutive requests |
| may be processed using different instances of the page, possibly in different JVMs (if the application |
| is operating in a clustered environment). No state particular to a single client session should |
| be stored in a page. |
| </para> |
| |
| <para> |
| Beans must be public classes with a default (no arguments) constructor. Properties of the bean |
| may be configured using the &spec.set-property; and &spec.set-message-property; elements. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">bean</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the bean, which must be a valid Java identifier.</entry> |
| </row> |
| <row> |
| <entry>class</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the class to instantiate.</entry> |
| </row> |
| <row> |
| <entry>lifecycle</entry> |
| <entry><literal>none|page|render|request</literal></entry> |
| <entry>no</entry> |
| <entry><literal>request</literal></entry> |
| <entry>As described above; duration that bean is retained.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| |
| </informaltable> |
| </figure> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">bean</sgmltag> Elements</title> |
| <literallayout> |
| &spec.description; ?, &spec.property; *, |
| (&spec.set-property; | &spec.set-message-property;) * |
| </literallayout> |
| </figure> |
| |
| |
| </section> <!-- spec.bean --> |
| |
| <section id="spec.binding"> |
| <title><sgmltag class="starttag">binding</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component; |
| </para> |
| |
| <para> |
| Binds a parameter of an embedded component to an OGNL expression rooted |
| in its container. |
| </para> |
| |
| <para> |
| In an instantiated component, bindings can be accessed with |
| the OGNL expression <literal>bindings.<replaceable>name</replaceable></literal>. |
| </para> |
| |
| <para> |
| If the <literal>expression</literal> attribute is omitted, then |
| the body of the element is used. This is useful when the |
| expression is long, or contains problematic characters (such as a mix |
| of single and double quotes). |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">binding</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the parameter to bind.</entry> |
| </row> |
| <row> |
| <entry>expression</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The OGNL expression, relative to the container, to be bound to the parameter.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.binding --> |
| |
| <section id="spec.component"> |
| <title><sgmltag class="starttag">component</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component-specification; and &spec.page-specification; |
| </para> |
| |
| <para> |
| Defines an embedded component within a container (a page or another component). |
| </para> |
| |
| <para> |
| In an instantiated component, embedded components can be accessed with |
| the OGNL expression <literal>components.<replaceable>id</replaceable></literal>. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">component</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>id</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>Identifier for the component here and in the component's template. Must be |
| a valid Java identifier.</entry> |
| </row> |
| <row> |
| <entry>type</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>A component type to instantiate.</entry> |
| </row> |
| <row> |
| <entry>copy-of</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>The name of a previously defined component. The type and bindings of that |
| component will be copied to this component. |
| </entry> |
| </row> |
| |
| <row> |
| <entry>inherit-informal-parameters</entry> |
| <entry><literal>yes|no</literal></entry> |
| <entry>no</entry> |
| <entry><literal>no</literal></entry> |
| <entry> |
| If <literal>yes</literal>, then any informal parameters of the containing |
| component will be copied into this component. |
| </entry> |
| </row> |
| |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| <para> |
| Either <literal>type</literal> or <literal>copy-of</literal> must be specified. |
| </para> |
| |
| <para> |
| A component type is either a simple name or a qualified name. A simple name is the name of |
| an component either provided by the framework, or |
| provided by the application (if the page or component is defined in an application), |
| or provided by the library (if the page or component is defined in a library). |
| </para> |
| |
| <para> |
| A qualified name is a library id, a colon, and a simple name of a component provided |
| by the named library (for example, <literal>contrib:Palette</literal>). |
| Library ids are defined by a &spec.library; element in the |
| containing library or application. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">component</sgmltag> Elements</title> |
| <literallayout> |
| &spec.property; *, |
| (&spec.binding; | &spec.inherited-binding; | &spec.listener-binding; | &spec.static-binding; | &spec.message-binding;) * |
| </literallayout> |
| </figure> |
| |
| |
| </section> <!-- spec.component --> |
| |
| <section id="spec.component-type"> |
| <title><sgmltag class="starttag">component-type</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.application; and &spec.library-specification; |
| </para> |
| |
| <para> |
| Defines a component type that may latter be used in a &spec.component; element |
| (for pages and components also defined by this application or library). |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">component-type</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>type</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>A name to be used as a component type.</entry> |
| </row> |
| <row> |
| <entry>specification-path</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>An absolute or relative resource path to the component's specification (including leading |
| slash and file extension). Relative resources are evaluated relative to |
| the location of the containing application or library specfication.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.component-type --> |
| |
| |
| <section id="spec.component-specification"> |
| <title><sgmltag class="starttag">component-specification</sgmltag> element</title> |
| |
| <para> |
| <emphasis>root element</emphasis> |
| </para> |
| |
| <para> |
| Defines a new component, in terms of its API (&spec.parameter;s), embedded components, beans and |
| assets. |
| </para> |
| |
| <para> |
| The structure of a <sgmltag class="starttag">component-specification</sgmltag> |
| is very similar to a &spec.page-specification; except components have additional attributes |
| and elements related to parameters. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">component-specification</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>class</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>The Java class to instantiate, which must implement the |
| interface &IComponent;. If not specified, &BaseComponent; is used. |
| </entry> |
| </row> |
| <row> |
| <entry>allow-body</entry> |
| <entry><literal>yes|no</literal></entry> |
| <entry>no</entry> |
| <entry><literal>yes</literal></entry> |
| <entry> |
| <para>If <literal>yes</literal>, then any body for this component, from its |
| containing page or component's template, is retained and may be |
| produced using a &RenderBody; component. |
| </para> |
| <para>If <literal>no</literal>, then any body for this component is |
| discarded. |
| </para> |
| </entry> |
| </row> |
| <row> |
| <entry>allow-informal-parameters</entry> |
| <entry><literal>yes|no </literal></entry> |
| <entry>no</entry> |
| <entry><literal>yes</literal></entry> |
| <entry> |
| <para>If <literal>yes</literal>, then any informal parameters |
| (bindings that don't match a formal parameter) specified here, or in |
| the component's tag within its container's template, are retained. |
| Typically, they are converted into additional HTML attributes. |
| </para> |
| <para>If <literal>no</literal>, then informal parameters |
| are not allowed in the specification, and discarded if in the template. |
| </para> |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| <figure> |
| <title><sgmltag class="starttag">component-specification</sgmltag> Elements</title> |
| <literallayout> |
| &spec.description; ?, &spec.parameter; *, &spec.reserved-parameter; *, &spec.property; *, |
| (&spec.bean; | &spec.component; | &spec.external-asset; | &spec.context-asset; | &spec.private-asset; | &spec.property-specification;)* |
| </literallayout> |
| </figure> |
| |
| |
| </section> <!-- spec.component-specification --> |
| |
| <section id="spec.configure"> |
| <title><sgmltag class="starttag">configure</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.extension; |
| </para> |
| |
| <para> |
| Allows a JavaBeans property of the extension to be set from a statically defined value. The |
| <sgmltag class="starttag">configure</sgmltag> element |
| wraps around the static value. The value is trimmed of leading and trailing |
| whitespace and optionally converted to a specified type before being assigned |
| to the property. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">configure</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>property-name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the extension property to configure.</entry> |
| </row> |
| <row> |
| <entry>type</entry> |
| <entry><literal>boolean|int|long|double|String</literal></entry> |
| <entry>no</entry> |
| <entry><literal>String</literal></entry> |
| <entry>The conversion to apply to the value.</entry> |
| </row> |
| <row> |
| <entry>value</entry> |
| <entry/> |
| <entry>no</entry> |
| <entry/> |
| <entry>The value to configure, which will be converted before being assigned |
| to the property. If not provided, the character data wrapped by the element |
| is used instead. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| |
| |
| </section> <!-- spec.configure --> |
| |
| |
| |
| <section id="spec.context-asset"> |
| <title><sgmltag class="starttag">context-asset</sgmltag> element</title> |
| |
| <para> |
| Specifies an asset located relative to the web application context root folder. |
| Context assets may be localized. |
| </para> |
| |
| <para> |
| Assets for an instantiated component (or page) |
| may be accessed using the OGNL expression <literal>assets.<replaceable>name</replaceable></literal>. |
| </para> |
| |
| <para> |
| The path may be either absolute or relative. Absolute paths start with a leading slash, and are evalulated |
| relative to the context root. Relative paths are evaluated relative to the application root, which |
| is typically the same as the context root (the exception being a WAR that contains multiple |
| Tapestry applications, within multiple subfolders). |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">context-asset</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the asset, which must be a valid Java identifier.</entry> |
| </row> |
| <row> |
| <entry>path</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The path to the asset. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.context-asset --> |
| |
| <section id="spec.description"> |
| <title><sgmltag class="starttag">description</sgmltag> element</title> |
| |
| <para> |
| Appears in: <emphasis>many</emphasis> |
| </para> |
| |
| <para> |
| A description may be attached to a many different elements. Descriptions are used |
| by an intelligent IDE to provide help. The Tapestry Inspector may also display a description. |
| </para> |
| |
| <para> |
| The descriptive text appears inside the <sgmltag class="starttag">description</sgmltag> tags. Leading |
| and trailing whitespace is removed and interior whitespace may be altered or removed. Descriptions |
| should be short; external documentation can provide greater details. |
| </para> |
| |
| <para> |
| The <sgmltag class="starttag">description</sgmltag> |
| element has no attributes. |
| </para> |
| |
| </section> <!-- spec.description --> |
| |
| <section id="spec.extension"> |
| <title><sgmltag class="starttag">extension</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.application; and &spec.library-specification; |
| </para> |
| |
| <para> |
| Defines an extension, a JavaBean that is instantiated as needed to provide |
| a global service to the application. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">extension</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>A name for the extension, which can (and should) look like |
| a qualified class name, but may also include the dash character. |
| </entry> |
| </row> |
| <row> |
| <entry>class</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The Java class to instantiate. The class must have a zero-arguments |
| constructor.</entry> |
| </row> |
| <row> |
| <entry>immediate</entry> |
| <entry><literal>yes|no</literal></entry> |
| <entry>no</entry> |
| <entry><literal>no</literal></entry> |
| <entry>If <literal>yes</literal>, the extension is instantiated when the specification is read. If |
| <literal>no</literal>, then the extension is not created until first needed. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">component-specification</sgmltag> Elements</title> |
| <literallayout> |
| &spec.property; *, &spec.configure; * |
| </literallayout> |
| </figure> |
| |
| </section> <!-- spec.extension --> |
| |
| <section id="spec.external-asset"> |
| <title><sgmltag class="starttag">external-asset</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component-specification; and &spec.page-specification; |
| </para> |
| |
| <para> |
| Defines an asset at an arbitrary URL. The URL may begin with a slash to indicate an asset on the same |
| web server as the application, or may be a complete URL to an arbitrary location on the Internet. |
| </para> |
| |
| <para> |
| External assets may be accessed at runtime with the OGNL expression |
| <literal>assets.<replaceable>name</replaceable></literal>. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">external-asset</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>A name for the asset. Asset names must be valid Java identifiers. |
| </entry> |
| </row> |
| <row> |
| <entry>URL</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The URL used to access the asset.</entry> |
| </row> |
| per</tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| |
| </section> <!-- spec.external-asset --> |
| |
| |
| <section id="spec.inherited-binding"> |
| <title><sgmltag class="starttag">inherited-binding</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component; |
| </para> |
| |
| <para> |
| Binds a parameter of an embedded component to a parameter |
| of its container. |
| </para> |
| |
| |
| <para> |
| In an instantiated component, bindings can be accessed with |
| the OGNL expression <literal>bindings.<replaceable>name</replaceable></literal>. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">inherited-binding</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the parameter to bind.</entry> |
| </row> |
| <row> |
| <entry>parameter-name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of a parameter of the containing component. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| |
| |
| |
| </section> <!-- spec.inherited-binding --> |
| |
| <section id="spec.library"> |
| <title><sgmltag class="starttag">library</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.application; and &spec.library-specification; |
| </para> |
| |
| <para> |
| Establishes that the containing application or library uses components defined in |
| another library, and sets the prefix used to reference those components. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">library</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>id</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The id associated with the library. Components within the library |
| can be referenced with the component type |
| <literal><replaceable>id</replaceable>:<replaceable>name</replaceable></literal>. |
| </entry> |
| </row> |
| <row> |
| <entry>specification-path</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The complete resource path for the library specification. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| |
| |
| |
| |
| </section> <!-- spec.library --> |
| |
| <section id="spec.library-specification"> |
| <title><sgmltag class="starttag">library-specification</sgmltag> element</title> |
| |
| <para> |
| <emphasis>root element</emphasis> |
| </para> |
| |
| <para> |
| Defines the pages, components, services and libraries used by a library. Very similar |
| to &spec.application;, but without attributes related application name or engine class. |
| </para> |
| |
| <para> |
| The <sgmltag class="starttag">library-specification</sgmltag> |
| element has no attributes. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">library-specification</sgmltag> Elements</title> |
| <literallayout> |
| &spec.description; ?, &spec.property; *, |
| (&spec.page; | &spec.component-type; | &spec.service; | &spec.library; | &spec.extension;) * |
| </literallayout> |
| </figure> |
| |
| |
| </section> <!-- spec.library-specification --> |
| |
| |
| |
| <section id="spec.listener-binding"> |
| <title><sgmltag class="starttag">listener-binding</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component; |
| </para> |
| |
| |
| <para> |
| A listener binding is used to create application logic, in the form |
| of a listener (for a &DirectLink;, &ActionLink;, &Form;, etc.) |
| in place within the specification, in |
| a scripting language (such as &Jython; or JavaScript). The script itself |
| is the wrapped character data for the <sgmltag class="starttag">listener-binding</sgmltag> |
| element. |
| </para> |
| |
| <para> |
| When the listener is triggered, the script is executed. Three beans, |
| <varname>page</varname>, <varname>component</varname> and <varname>cycle</varname> |
| are pre-declared. |
| </para> |
| |
| <para> |
| The <varname>page</varname> is the page activated by the request. Usually, this is |
| the same as the page which contains the <varname>component</varname> ... in fact, |
| usually <varname>page</varname> and <varname>compoment</varname> are identical. |
| </para> |
| |
| <para> |
| The <varname>component</varname> is the component from whose specification |
| the binding was created (that is, not the &DirectLink;, but the page or component |
| which embeds the &DirectLink;). |
| </para> |
| |
| <para> |
| The <varname>cycle</varname> is the active request cycle, from which service parameters |
| may be obtained. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">listener-binding</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the listener parameter to bind.</entry> |
| </row> |
| <row> |
| <entry>language</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>The name of a &BSF;-supported language that the script is written in. The default, |
| if not specified, is <literal>jython</literal>. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.listener-binding --> |
| |
| |
| <section id="spec.message-binding"> |
| <title><sgmltag class="starttag">message-binding</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component; |
| </para> |
| |
| <para> |
| Binds a parameter of an embedded component to a localized |
| string of its containing page or component. |
| </para> |
| |
| <para> |
| In an instantiated component, bindings can be accessed with |
| the OGNL expression <literal>bindings.<replaceable>name</replaceable></literal>. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">message-binding</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the parameter to bind.</entry> |
| </row> |
| <row> |
| <entry>key</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The localized property key to retrieve. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| </section> <!-- spec.message-binding --> |
| |
| <section id="spec.page"> |
| <title><sgmltag class="starttag">page</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.application; and &spec.library-specification; |
| </para> |
| |
| <para> |
| Defines a page within an application (or contributed by a library). |
| Relates a logical name for the page to the path to the page's specification file. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">page</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name for the page, which must start with a letter, |
| and may contain letters, numbers, underscores and the dash |
| character. |
| </entry> |
| </row> |
| <row> |
| <entry>specification-path</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry> |
| The path to the page's specification, which may be absolute |
| (start with a leading slash), or relative to the application or library |
| specification. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.page --> |
| |
| <section id="spec.page-specification"> |
| <title><sgmltag class="starttag">page-specification</sgmltag> element</title> |
| |
| <para> |
| <emphasis>root element</emphasis> |
| </para> |
| |
| <para> |
| Defines a page within an application (or a library). The |
| <sgmltag class="starttag">page-specification</sgmltag> |
| is a subset of &spec.component-specification; |
| with attributes and entities related to parameters removed. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">page-specification</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>class</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>The Java class to instantiate, which must implement the |
| interface &IPage;. Typically, this is |
| &BasePage; or a subclass of it. &BasePage; is the default if not otherwise |
| specified.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| <figure> |
| <title><sgmltag class="starttag">page-specification</sgmltag> Elements</title> |
| <literallayout> |
| &spec.description; ?, &spec.property; *, |
| (&spec.bean; | &spec.component; | &spec.external-asset; | &spec.context-asset; | &spec.private-asset; | &spec.property-specification;)* |
| </literallayout> |
| </figure> |
| |
| |
| </section> <!-- spec.page-specification --> |
| |
| <section id="spec.parameter"> |
| <title><sgmltag class="starttag">parameter</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component-specification; |
| </para> |
| |
| <para> |
| Defines a formal parameter of a component. Parameters may be connected |
| (<literal>in</literal>, <literal>form</literal> or <literal>auto</literal>) |
| or unconnected (<literal>custom</literal>). If a parameter is |
| connected, but the class does not provide the property (or does, but |
| the accessors are abstract), then the framework |
| will create and use a subclass that contains the implementation |
| of the necessary property. |
| </para> |
| |
| <para> |
| For <literal>auto</literal> parameters, the framework will create a synthetic property |
| as a wrapper around the binding. Reading the property will read the value from |
| the binding and updating the property will update the binding value. <literal>auto</literal> |
| may only be used with required parameters. <literal>auto</literal> is less |
| efficient than <literal>in</literal>, but can be used even when the component |
| is not rendering. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">parameter</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the parameter, which must be |
| a valid Java identifier.</entry> |
| </row> |
| <row> |
| <entry>type</entry> |
| <entry>scalar name, or class name</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>Required for connected parameters. Specifies |
| the type of the JavaBean property that a connected |
| parameter writes and reads. The property must |
| match this exact value, which can be a fully specified class name, |
| or the name of a scalar Java type. |
| </entry> |
| </row> |
| |
| <row> |
| <entry>required</entry> |
| <entry><literal>yes|no</literal></entry> |
| <entry>no</entry> |
| <entry><literal>no</literal></entry> |
| <entry>If <literal>yes</literal>, then the parameter must be |
| bound (though it is possible that the binding's value |
| will still be null). |
| </entry> |
| </row> |
| |
| <row> |
| <entry>property-name</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>For connected parameters only; allows the name of the property |
| to differ from the name of the parameter. If not specified, |
| the property name will be the same as the parameter name. |
| </entry> |
| </row> |
| |
| <row> |
| <entry>direction</entry> |
| <entry><literal>in|form|auto|custom</literal></entry> |
| <entry>no</entry> |
| <entry><literal>custom</literal></entry> |
| <entry> |
| <para> |
| Identifies the semantics of how the parameter is used by the |
| component. <literal>custom</literal>, the default, means the |
| component explicitly controls reading and writing values through |
| the binding. |
| </para> |
| |
| <para> |
| <literal>in</literal> means the property is set from the parameter |
| before the component renders, and is reset back to default value |
| after the component renders. |
| </para> |
| |
| <para> |
| <literal>form</literal> means that the property is set from the |
| parameter when the component renders (as with <literal>in</literal>). |
| When the form is submitted, the value is read from the property |
| and used to set the binding value after the component rewinds. |
| </para> |
| |
| <para> |
| <literal>auto</literal> creates a synthetic property that works |
| with the binding to read and update. <literal>auto</literal> |
| parameters must be required, but can be used even when the |
| component is not rendering. |
| </para> |
| </entry> |
| </row> |
| |
| <row> |
| <entry>default-value</entry> |
| <entry>OGNL expression</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry> |
| Specifies the default value for the parameter, if the parameter is not bound. |
| </entry> |
| </row> |
| |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| |
| |
| </section> <!-- spec.parameter --> |
| |
| <section id="spec.private-asset"> |
| <title><sgmltag class="starttag">private-asset</sgmltag> element</title> |
| |
| <para> |
| Specifies located from the classpath. These exist to support |
| reusable components packages (as part of a &spec.library-specification;) |
| packaged in a JAR. Private assets will be localized. |
| </para> |
| |
| <para> |
| Assets for an instantiated component (or page) |
| may be accessed using the OGNL expression <literal>assets.<replaceable>name</replaceable></literal>. |
| </para> |
| |
| <para> |
| The resource path may either be complete and absolute, and start with a leading slash, |
| or be relative. Relative paths are evaluated relative to the location of the |
| containing specification. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">private-asset</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the asset, which must be a valid Java identifier.</entry> |
| </row> |
| <row> |
| <entry>resource-path</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The absolute or relative path to the asset on the classpath. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.private-asset --> |
| |
| <section id="spec.property"> |
| <title><sgmltag class="starttag">property</sgmltag> element</title> |
| |
| <para> |
| Appears in: <emphasis>many</emphasis> |
| </para> |
| |
| <para> |
| The <sgmltag class="starttag">property</sgmltag> element is used to store meta-data |
| about some other element (it is contained within). Tapestry ignores this meta-data |
| Any number of name/value pairs may be stored. The value is provided with |
| the <varname>value</varname> attribute, or the |
| character data for the <sgmltag class="starttag">property</sgmltag> element. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">property</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the property.</entry> |
| </row> |
| <row> |
| <entry>value</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>The value for the property. If omitted, the value is taken |
| from the character data (the text the tag wraps around). If specified, |
| the character data is ignored.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| </section> <!-- spec.property --> |
| |
| |
| <section id="spec.property-specification"> |
| <title><sgmltag class="starttag">property-specification</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component-specification;, &spec.page-specification; |
| </para> |
| |
| <para> |
| Defines a transient or persistent property to be added to the page or component. |
| Tapestry will create a subclass of the page or component class (at runtime) |
| and add the necessary fields and accessor methods, as well as end-of-request |
| cleanup. |
| </para> |
| |
| <para> |
| It is acceptible for a page (or component) to be abstract, and have abstract accessor methods |
| matching the names that Tapestry will generate for the subclass. This can be |
| useful when setting properties of the page (or component) from a &listener-method;. |
| </para> |
| |
| <para> |
| A connected parameter specified in a &spec.parameter; element may also cause an enhanced subclass |
| to be created. |
| </para> |
| |
| <para> |
| An initial value may be specified as either the <literal>initial-value</literal> |
| attribute, or as the body of the <sgmltag class="starttag">property-specification</sgmltag> element |
| itself. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">property-specification</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the property to create.</entry> |
| </row> |
| <row> |
| <entry>type</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry>java.lang.Object</entry> |
| <entry> |
| The type of the property. If abstract accessors exist, they must exactly match |
| this type. The type may be either a fully qualified class name, or the name |
| of one of the basic scalar types (int, boolean, etc.). It may be suffixed with |
| <literal>[]</literal> to indicate an array of the indicated type. |
| </entry> |
| </row> |
| <row> |
| <entry>persistent</entry> |
| <entry><literal>yes|no</literal></entry> |
| <entry>no</entry> |
| <entry><literal>no</literal></entry> |
| <entry> |
| If true, the generated property will be persistent, firing change notifications |
| when it is updated. |
| </entry> |
| </row> |
| <row> |
| <entry>initial-value</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry> |
| An optional OGNL expression used to initialize the property. The expression is evaluated |
| only when the page is first constructed. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| </section> <!-- spec.property-specification --> |
| |
| <section id="spec.reserved-parameter"> |
| <title><sgmltag class="starttag">reserved-parameter</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component-specification; |
| </para> |
| |
| <para> |
| Used in components that allow informal parameters to limit the possible |
| informal parameters (so that there aren't conflicts with HTML attributes |
| generated by the component). |
| </para> |
| |
| <para> |
| All formal parameters are automatically reserved. |
| </para> |
| |
| <para> |
| Comparisons are caseless, so an informal parameter of "SRC", "sRc", etc., will match |
| a reserved parameter named "src" (or any variation), and be excluded. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">reserved-parameter</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the reserved parameter.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| |
| </section> <!-- spec.reserved-parameter --> |
| |
| <section id="spec.service"> |
| <title><sgmltag class="starttag">service</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.application; and &spec.library-specification; |
| </para> |
| |
| <para> |
| Defines an &IEngineService; provided by the application or by a library. |
| </para> |
| |
| <para> |
| The framework provides several services (home, direct, action, external, etc.). |
| Applications may override these services by defining different |
| services with the same names. |
| </para> |
| |
| <para> |
| Libraries that provide services should use a qualified name (that is, put |
| a package prefix in front of the name) to avoid name collisions. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">service</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the service.</entry> |
| </row> |
| <row> |
| <entry>class</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The complete class name to instantiate. The class must have |
| a zero-arguments constructor and implement the interface |
| &IEngineService; |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.service --> |
| |
| <section id="spec.set-message-property"> |
| <title><sgmltag class="starttag">set-message-property</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.bean; |
| </para> |
| |
| <para> |
| Allows a property of a helper bean to be set to a localized string |
| value of its containing page or component. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">set-message-property</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the helper bean property to set.</entry> |
| </row> |
| <row> |
| <entry>key</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>A string property key of the containing page or component. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.set-message-property --> |
| |
| <section id="spec.set-property"> |
| <title><sgmltag class="starttag">set-property</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.bean; |
| </para> |
| |
| <para> |
| Allows a property of a helper bean to be set to an OGNL expression (evaluated |
| on the containing component or page). |
| </para> |
| |
| |
| <para> |
| The value to be assigned to the bean property can be specified |
| using the <literal>expression</literal> attribute, or as |
| the content of the <sgmltag class="starttag">set-property</sgmltag> element |
| itself. |
| </para> |
| |
| <figure> |
| <title><sgmltag class="starttag">set-property</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the helper bean property to set.</entry> |
| </row> |
| <row> |
| <entry>expression</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>The OGNL expression used to set the property. |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| </section> <!-- spec.set-property --> |
| |
| |
| |
| <section id="spec.static-binding"> |
| <title><sgmltag class="starttag">static-binding</sgmltag> element</title> |
| |
| <para> |
| Appears in: &spec.component; |
| </para> |
| |
| <para> |
| Binds a parameter of an embedded component to a static value. The value, |
| which is stored as a string, is specified |
| as the <literal>value</literal> attribute, or as |
| the wrapped contents |
| of the <sgmltag class="starttag">static-binding</sgmltag> tag. Leading |
| and trailing whitespace is removed. |
| </para> |
| |
| <para> |
| In an instantiated component, bindings can be accessed with |
| the OGNL expression <literal>bindings.<replaceable>name</replaceable></literal>. |
| </para> |
| |
| |
| <figure> |
| <title><sgmltag class="starttag">static-binding</sgmltag> Attributes</title> |
| <informaltable> |
| <tgroup cols="5"> |
| <thead> |
| <row> |
| <entry>Name</entry> |
| <entry>Type</entry> |
| <entry>Required ?</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>name</entry> |
| <entry>string</entry> |
| <entry>yes</entry> |
| <entry/> |
| <entry>The name of the parameter to bind.</entry> |
| </row> |
| <row> |
| <entry>value</entry> |
| <entry>string</entry> |
| <entry>no</entry> |
| <entry/> |
| <entry>The string value to be used. If omitted, the wrapped character data |
| is used instead (which is more convienient if the value is large, or |
| contains problematic punctuation).</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| </figure> |
| |
| |
| </section> <!-- spec.static-binding --> |
| |
| </appendix> |