com.opensymphony.xwork2.interceptor
Class ParameterRemoverInterceptor

java.lang.Object
  extended by com.opensymphony.xwork2.interceptor.AbstractInterceptor
      extended by com.opensymphony.xwork2.interceptor.ParameterRemoverInterceptor
All Implemented Interfaces:
Interceptor, Serializable

public class ParameterRemoverInterceptor
extends AbstractInterceptor

This is a simple XWork interceptor that allows parameters (matching one of the paramNames attribute csv value) to be removed from the parameter map if they match a certain value (matching one of the paramValues attribute csv value), before they are set on the action. A typical usage would be to want a dropdown/select to map onto a boolean value on an action. The select had the options none, yes and no with values -1, true and false. The true and false would map across correctly. However the -1 would be set to false. This was not desired as one might needed the value on the action to stay null. This interceptor fixes this by preventing the parameter from ever reaching the action.

No intended extension point
 
        
 <action name="sample" class="org.martingilday.Sample">
        <interceptor-ref name="paramRemover">
                <param name="paramNames">aParam,anotherParam</param>
                <param name="paramValues">--,-1</param>
        </interceptor-ref>
        <interceptor-ref name="defaultStack" />
        ...
 </action>
  
 
 

Author:
martin.gilday
See Also:
Serialized Form

Field Summary
private static Logger LOG
           
private  Set<String> paramNames
           
private  Set<String> paramValues
           
private static long serialVersionUID
           
 
Constructor Summary
ParameterRemoverInterceptor()
           
 
Method Summary
 String intercept(ActionInvocation invocation)
          Decide if the parameter should be removed from the parameter map based on paramNames and paramValues.
 void setParamNames(String paramNames)
          Allows paramNames attribute to be set as comma-separated-values (csv).
 void setParamValues(String paramValues)
          Allows paramValues attribute to be set as a comma-separated-values (csv).
 
Methods inherited from class com.opensymphony.xwork2.interceptor.AbstractInterceptor
destroy, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

private static final Logger LOG

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

paramNames

private Set<String> paramNames

paramValues

private Set<String> paramValues
Constructor Detail

ParameterRemoverInterceptor

public ParameterRemoverInterceptor()
Method Detail

intercept

public String intercept(ActionInvocation invocation)
                 throws Exception
Decide if the parameter should be removed from the parameter map based on paramNames and paramValues.

Specified by:
intercept in interface Interceptor
Specified by:
intercept in class AbstractInterceptor
Parameters:
invocation - the action invocation
Returns:
the return code, either returned from ActionInvocation.invoke(), or from the interceptor itself.
Throws:
Exception - any system-level error, as defined in Action.execute().
See Also:
AbstractInterceptor

setParamNames

public void setParamNames(String paramNames)
Allows paramNames attribute to be set as comma-separated-values (csv).

Parameters:
paramNames - the paramNames to set

setParamValues

public void setParamValues(String paramValues)
Allows paramValues attribute to be set as a comma-separated-values (csv).

Parameters:
paramValues - the paramValues to set


Copyright © 2000-2009 Apache Software Foundation. All Rights Reserved.