blob: ef512f0bc386e169035549d3a102f4d27059c2a8 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN" "../../dtd/document-v10.dtd">
<!--
<![CDATA[ CVS Version: $Id: requestattribute-selector.xml,v 1.4 2003/12/11 09:25:01 huber Exp $
]]>
-->
<document>
<header>
<title>RequestAttribute-Selector in Cocoon</title>
<version>0.9</version>
<type>Technical document</type>
<authors>
<person name="Bernhard Huber" email="huber@apache.org"/>
</authors>
<abstract>This document describes the RequestAttributeSelector of Cocoon.</abstract>
</header>
<body>
<s1 title="RequestAttributeSelector">
<table>
<tr>
<td>NAME</td><td>request-attribute</td>
</tr>
<tr>
<td>WHAT</td><td>The <code>RequestAttributeSelector</code> component is used to
select appropriate sitemap processing depending on a request attribute
value.
</td>
</tr>
<tr>
<td>TYPE</td><td>Selector, Sitemap Component</td>
</tr>
<tr>
<!-- choose Core, the block name, or Scratchpad
depending on where RequestAttributeSelector sources live
-->
<td>BLOCK</td><td>Core</td>
</tr>
<tr>
<td>CLASS</td><td>org.apache.cocoon.selection.RequestAttributeSelector</td>
</tr>
<!-- uncomment folling tr iff RequestAttributeSelector is deprecated -->
<!--tr>
<td>DEPRECATED</td><td>Cocoon 2.0, 2.1</td>
</tr-->
<tr>
<td>SINCE</td><td>Cocoon 2.0</td>
</tr>
<tr>
<td>CACHEABLE</td><td>not applicable</td>
</tr>
</table>
</s1>
<s1 title="Description">
<p>
The <code>RequestAttributeSelector</code> tests the value of request attribute
against the test attribute of the selector's when clause.
</p>
</s1>
<s1 title="Usage">
<p>
The <code>RequestAttributeSelector</code> allows to control the
sitemap processing depending on a request attribute.
</p>
<s2 title="Sitemap pipeline examples">
<p>
The snippet below uses a <code>RequestAttributeSelector</code> named <code>request-attribute</code>.
It tests the value of request attribute named <code>command</code> against
<code>list</code>, <code>create</code>; finally it has a <code>otherwise</code> clause.
</p>
<source><![CDATA[
<map:select type="request-attribute">
<map:parameter name="attribute-name" value="command"/>
<map:when test="list">
....
</map:when>
<map:when test="create">
...
</map:when>
...
<map:otherwise>
...
</map:otherwise>
</map:select>
]]></source>
</s2>
<s2 title="Sitemap component configuration example">
<p>
The snippet below declares a <code>RequestAttributeSelector</code>
defining to use the request attribute <code>cmd</code>.
</p>
<source><![CDATA[
<map:selectors...
<map:selector name="request-attribute"
src="org.apache.cocoon.selection.RequestAttributeSelector"
logger="sitemap.selector.requestattribute">
<attribute-name>command</attribute-name>
</map:selectors>
...
]]></source>
</s2>
<s2 title="Configuration">
<p>
<!-- Explain the sitemap selector configuration, options when declaring request-attribute selector -->
The configuration section of <code>RequestAttributeSelector</code> specifies
the default name of the request attribute, used for testing.
</p>
</s2>
<s2 title="Setup">
<p>
<!-- Explain the sitemap selector setup, ie options when using request-attribute selector -->
Setting up a <code>RequestAttributeSelector</code> includes
</p>
<ul>
<li>Defining an optional sitemap paramter named <code>request-name</code>, it overrides
the attribute-name setting in the configuration section.
</li>
<li>choosing the <code>&lt;map:when&gt;</code> test expressions, and a
optional <code>&lt;map:otherwise&gt;</code> clause.
</li>
</ul>
<p>
The test attribute of the <code>&lt;map:when&gt;</code> clause shall match
the value of the request attribute.
If no test value matches, or the request attribute is not defined at all,
the <code>&lt;map:otherwise</code> clause is selected.
</p>
</s2>
<s2 title="Effect on Object Model and Sitemap Parameters">
<p>
The <code>RequestAttributeSelector</code> has no side effects on the object model, or
any sitemap attributes.
</p>
</s2>
</s1>
<s1 title="Bugs/Caveats">
<p>
</p>
</s1>
<s1 title="History">
<p>
28-12-02: initial creation
</p>
</s1>
<s1 title="Copyright">
<p>
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
</p>
</s1>
<s1 title="See also">
<p>
<!-- Links to related components pages. -->
A general documentation about selectors is available at
<link href="../concepts/matchers_selectors.html">Matchers and Selectors</link>.
</p>
</s1>
</body>
</document>