org.apache.cocoon.acting
Class RequestParameterExistsAction

java.lang.Object
  extended byorg.apache.cocoon.util.AbstractLogEnabled
      extended byorg.apache.cocoon.acting.AbstractAction
          extended byorg.apache.cocoon.acting.AbstractConfigurableAction
              extended byorg.apache.cocoon.acting.RequestParameterExistsAction
All Implemented Interfaces:
org.apache.cocoon.acting.Action, Configurable, ThreadSafe

public class RequestParameterExistsAction
extends org.apache.cocoon.acting.AbstractConfigurableAction
implements ThreadSafe

This action simply checks to see if a given request parameter exists.

It takes an arbitrary number of default parameters to check named 'parameter-name'. Non-default parameters need to be separated by spaces and passed as value of a sitemap parameter named 'parameters'. The action returns a map with all parameters if all of them exist and null otherwise. Parameter names can only be added to this list but no default parameters can be overridden by specific ones.

This action is very closely related to @link{RequestParamAction} and FormValidatorAction. However this action is considerably simpler in that it tests only for existence of a parameter and it doesn't need a descriptor. Besides it doesn't propagate all request parameters to the sitemap but only those that are marked as required.

One special feature is, however, that parameters can contain one wildcard ("*"). It will be checked, whether all parameters with a wildcard have the same matches. E.g. "id_* name_*" enforces, that if "id_1" exists, "name_1" must also exist and vice versa.

Version:
$Id: RequestParameterExistsAction.html 1304280 2012-03-23 11:18:01Z ilgrosso $

Nested Class Summary
protected  class RequestParameterExistsAction.StringParts
           
 
Field Summary
 
Fields inherited from class org.apache.cocoon.acting.AbstractConfigurableAction
settings
 
Fields inherited from class org.apache.cocoon.acting.AbstractAction
EMPTY_MAP
 
Fields inherited from interface org.apache.cocoon.acting.Action
ROLE
 
Constructor Summary
RequestParameterExistsAction()
           
 
Method Summary
 Map act(org.apache.cocoon.environment.Redirector redirector, org.apache.cocoon.environment.SourceResolver resolver, Map objectModel, String source, Parameters parameters)
           
protected  String getMatch(String paramName, RequestParameterExistsAction.StringParts sp)
          If a String matches a StringPart spec, return the substring between the specified prefix and postfix.
protected  RequestParameterExistsAction.StringParts splitParameter(String paramName)
          Find first "*" in a String and split it into the substring before and after the "*".
 
Methods inherited from class org.apache.cocoon.acting.AbstractConfigurableAction
configure
 
Methods inherited from class org.apache.cocoon.util.AbstractLogEnabled
getLogger, setLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RequestParameterExistsAction

public RequestParameterExistsAction()
Method Detail

act

public Map act(org.apache.cocoon.environment.Redirector redirector,
               org.apache.cocoon.environment.SourceResolver resolver,
               Map objectModel,
               String source,
               Parameters parameters)
        throws Exception
Specified by:
act in interface org.apache.cocoon.acting.Action
Throws:
Exception

splitParameter

protected RequestParameterExistsAction.StringParts splitParameter(String paramName)
Find first "*" in a String and split it into the substring before and after the "*". Returns null if no "*" is present.


getMatch

protected String getMatch(String paramName,
                          RequestParameterExistsAction.StringParts sp)
If a String matches a StringPart spec, return the substring between the specified prefix and postfix. Returns null if it doesn't match.



Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.