Date: 2004-12-10T07:48:04
Editor: MarkLeicester <[EMAIL PROTECTED]>
Wiki: Cocoon Wiki
Page: JXTemplateGenerator
URL: http://wiki.apache.org/cocoon/JXTemplateGenerator
Added information about accessing sitemap parameters
Change Log:
------------------------------------------------------------------------------
@@ -7,21 +7,36 @@
Sitemap Configuration:
{{{<map:generator name="jx"
src="org.apache.cocoon.generation.JXTemplateGenerator" label="content"
logger="sitemap.generator.jx"/>}}}
-Provides a generic page template with embedded JSTL and XPath expression
substitution to access data sent by Cocoon Flowscripts, eg. web
continuation.[[BR]]
- * Accessing through [http://jakarta.apache.org/commons/jexl JSTL(Apache
Jexl)]: ${continuation.id}
- * Accessing through [http://jakarta.apache.org/commons/jxpath XPath(Apache
JXPath)]: #{$continuation/id}
+== Accessing data with the JXTemplateGenerator ==
-There are some objects implicitly available through both expression languages:
+=== JSTL and XPath ===
+
+The JX!TemplateGenerator provides a generic page templating mechanism. You can
embed either JSTL or XPath expressions to access data from several implicitly
defined Cocoon objects (e.g. request, session etc.), or from objects you have
passed to the JX!TemplateGenerator from your flow script. For example, this is
how you would access the current contination id using each expression language:
+ * Using [http://jakarta.apache.org/commons/jexl JSTL(Apache Jexl)]:
${continuation.id}
+ * Using [http://jakarta.apache.org/commons/jxpath XPath(Apache JXPath)]:
#{$continuation/id}
+
+=== Accessing data from implicitly defined Cocoon objects ===
+
+You have access to some implicitly defined objects (available through both
JSTL and XPath):
+ * continuation - The current flow script continuation
* request - The Cocoon current request
({{{org.apache.cocoon.environment.Request}}})
* session - The Cocoon session associated with the current request
({{{org.apache.cocoon.environment.Session}}})
* context - The Cocoon context associated with the current request
({{{org.apache.cocoon.environment.Context}}})
* parameters - A map of parameters passed to the generator in the pipeline
({{{org.apache.avalon.framework.parameters.Parameters}}})
-When using JX!TemplateGenerator you probably want to pass data from your flow.
You may pass Java Beans, DOM, JDOM, or !JavaScript objects as these are
recognized by both, XPath and JSTL. Pass these objects as 'Bizdata', for
example in Flowscript:
-{{{
-var greatlakes = ["Superior", "Michigan", "Huron", "Erie", "Ontario"];
+==== Accessing sitemap parameters ====
+
+Cocoon sitemap parameters are accessed through the {{{parameters}}} object.
For example, your sitemap might look like this:
+{{{<map:generate src="jxtemplate.xml" type="jx">
+ <map:parameter name="my-param" value="my-value"/>
+</map:generate}}}
+To access the value of {{{my-param}}} in your jxtemplate.xml file (using JSTL
in this case) your expression would look like this:
${cocoon.parameters['my-param']}
+
+=== Accessing data passed from your flow scripts ===
-sendPage(uri, {greatlakes: greatlakes}); }}}
+You may also pass Java Beans, DOM, JDOM, or !JavaScript objects from your flow
scripts. Once again, this will work in both JSTL and XPath. For example:
+{{{var greatlakes = ["Superior", "Michigan", "Huron", "Erie", "Ontario"];
+sendPage(uri, {"greatlakes" : greatlakes});}}}
== Basic features ==