org.apache.cocoon.acting
Class RequestParamAction

java.lang.Object
  |
  +--org.apache.avalon.framework.logger.AbstractLoggable
        |
        +--org.apache.cocoon.acting.AbstractAction
              |
              +--org.apache.cocoon.acting.ComposerAction
                    |
                    +--org.apache.cocoon.acting.RequestParamAction
All Implemented Interfaces:
Action, org.apache.avalon.framework.component.Component, org.apache.avalon.framework.component.Composable, org.apache.avalon.framework.logger.Loggable, org.apache.avalon.framework.thread.ThreadSafe

public class RequestParamAction
extends ComposerAction
implements org.apache.avalon.framework.thread.ThreadSafe

This action makes some request details available to the sitemap via parameter substitution. {context} - is the context path of the servlet (usually "/cocoon") {requestURI} - is the requested URI without parameters {requestQuery} - is the query string like "?param1=test" if there is one Additionlly all request parameters can be made available for use in the sitemap. if the parameter "parameters" is set to true. (A variable is created for each request parameter (only if it doesn't exist) with the same name as the parameter itself) Default values can be set for request parameters, by including sitemap parameters named "default.". Sitemap definition:

 <map:action name="request" src="org.apache.cocoon.acting.RequestParamAction"/>
 

Example use:

 <map:match pattern="some-resource">
  <map:act type="request">
     <map:parameter name="parameters" value="true"/>
     <map:parameter name="default.dest" value="invalid-destination.html"/>
     <map:redirect-to uri="{context}/somewhereelse/{dest}"/>
  </map:act>
 </map:match>
 
Redirection is only one example, another use:
 <map:match pattern="some-resource">
  <map:act type="request">
     <map:parameter name="parameters" value="true"/>
     <map:generate src="users/menu-{id}.xml"/>
  </map:act>
  <map:transform src="menus/personalisation.xsl"/>
  <map:serialize/>
 </map:match>
 
etc, etc.

Version:
CVS $Id: RequestParamAction.java,v 1.6 2002/02/22 06:59:26 cziegeler Exp $
Author:
Marcus Crafter, Torsten Curdt

Field Summary
static java.lang.String MAP_CONTEXTPATH
           
static java.lang.String MAP_QUERY
           
static java.lang.String MAP_URI
           
static java.lang.String PARAM_DEFAULT_PREFIX
           
static java.lang.String PARAM_PARAMETERS
           
 
Fields inherited from class org.apache.cocoon.acting.ComposerAction
manager
 
Fields inherited from class org.apache.cocoon.acting.AbstractAction
EMPTY_MAP
 
Fields inherited from interface org.apache.cocoon.acting.Action
ROLE
 
Constructor Summary
RequestParamAction()
           
 
Method Summary
 java.util.Map act(Redirector redirector, SourceResolver resolver, java.util.Map objectModel, java.lang.String source, org.apache.avalon.framework.parameters.Parameters param)
          Controls the processing against some values of the Dictionary objectModel and returns a Map object with values used in subsequent sitemap substitution patterns.
 
Methods inherited from class org.apache.cocoon.acting.ComposerAction
compose
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLoggable
getLogger, setLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAP_URI

public static final java.lang.String MAP_URI

MAP_QUERY

public static final java.lang.String MAP_QUERY

MAP_CONTEXTPATH

public static final java.lang.String MAP_CONTEXTPATH

PARAM_PARAMETERS

public static final java.lang.String PARAM_PARAMETERS

PARAM_DEFAULT_PREFIX

public static final java.lang.String PARAM_DEFAULT_PREFIX
Constructor Detail

RequestParamAction

public RequestParamAction()
Method Detail

act

public java.util.Map act(Redirector redirector,
                         SourceResolver resolver,
                         java.util.Map objectModel,
                         java.lang.String source,
                         org.apache.avalon.framework.parameters.Parameters param)
                  throws java.lang.Exception
Description copied from interface: Action
Controls the processing against some values of the Dictionary objectModel and returns a Map object with values used in subsequent sitemap substitution patterns. NOTE: This interface is designed so that implentations can be ThreadSafe. When an action is ThreadSafe, only one instance serves all requests : this reduces memory usage and avoids pooling.
Following copied from interface: org.apache.cocoon.acting.Action
Parameters:
resolver - The SourceResolver in charge
objectModel - The Map with object of the calling environment which can be used to select values this controller may need (ie Request, Response).
source - A source String to the Action
parameters - The Parameters for this invocation
Returns:
Map The returned Map object with sitemap substitution values which can be used in subsequent elements attributes like src= using a xpath like expression: src="mydir/{myval}/foo" If the return value is null the processing inside the element of the sitemap will be skipped.
Throws:
java.lang.Exception - Indicates something is totally wrong


Copyright © 1999-2002 Apache Software Foundation. All Rights Reserved.