org.apache.cocoon.acting
Class RequestParamAction

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.cocoon.acting.AbstractAction
          extended by org.apache.cocoon.acting.ServiceableAction
              extended by org.apache.cocoon.acting.RequestParamAction
All Implemented Interfaces:
Component, LogEnabled, Serviceable, ThreadSafe, Action

public class RequestParamAction
extends ServiceableAction
implements 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.html 1304258 2012-03-23 10:09:27Z ilgrosso $
Author:
Marcus Crafter, Torsten Curdt

Field Summary
static String MAP_CONTEXTPATH
           
static String MAP_QUERY
           
static String MAP_URI
           
static String PARAM_DEFAULT_PREFIX
           
static String PARAM_PARAMETERS
           
 
Fields inherited from class org.apache.cocoon.acting.ServiceableAction
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
 Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, 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.ServiceableAction
service
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, 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 String MAP_URI
See Also:
Constant Field Values

MAP_QUERY

public static final String MAP_QUERY
See Also:
Constant Field Values

MAP_CONTEXTPATH

public static final String MAP_CONTEXTPATH
See Also:
Constant Field Values

PARAM_PARAMETERS

public static final String PARAM_PARAMETERS
See Also:
Constant Field Values

PARAM_DEFAULT_PREFIX

public static final String PARAM_DEFAULT_PREFIX
See Also:
Constant Field Values
Constructor Detail

RequestParamAction

public RequestParamAction()
Method Detail

act

public Map act(Redirector redirector,
               SourceResolver resolver,
               Map objectModel,
               String source,
               Parameters param)
        throws 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.

Specified by:
act in interface Action
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
param - 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:
Exception - Indicates something is totally wrong


Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.