org.apache.velocity.tools.view
Class ParameterTool

java.lang.Object
  extended by org.apache.velocity.tools.generic.SafeConfig
      extended by org.apache.velocity.tools.generic.LocaleConfig
          extended by org.apache.velocity.tools.generic.ConversionTool
              extended by org.apache.velocity.tools.generic.ValueParser
                  extended by org.apache.velocity.tools.view.ParameterTool
All Implemented Interfaces:
java.util.Map<java.lang.String,java.lang.Object>
Direct Known Subclasses:
ParameterParser

@DefaultKey(value="params")
@ValidScope(value="request")
public class ParameterTool
extends ValueParser

Utility class for easy parsing of ServletRequest parameters.

 Template example(s):
   $params.foo                ->  bar
   $params.getNumber('baz')   ->  12.6
   $params.getInt('baz')      ->  12
   $params.getNumbers('baz')  ->  [12.6]

 Toolbox configuration:
 <tools>
   <toolbox scope="request">
     <tool class="org.apache.velocity.tools.view.ParameterTool"/>
   </toolbox>
 </tools>
 

When used as a view tool, this should only be used in the request scope. This class is, however, quite useful in your application's controller, filter, or action code as well as in templates.

Since:
VelocityTools 2.0
Version:
$Revision: 749733 $ $Date: 2009-03-03 12:24:17 -0800 (Tue, 03 Mar 2009) $
Author:
Nathan Bubna

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Field Summary
private  javax.servlet.ServletRequest request
           
 
Fields inherited from class org.apache.velocity.tools.generic.ValueParser
ALLOWSUBKEYS_KEY, READONLY_KEY
 
Fields inherited from class org.apache.velocity.tools.generic.ConversionTool
DATE_FORMAT_KEY, DEFAULT_DATE_FORMAT, DEFAULT_NUMBER_FORMAT, DEFAULT_STRINGS_DELIMITER, DEFAULT_STRINGS_TRIM, NUMBER_FORMAT_KEY, STRINGS_DELIMITER_FORMAT_KEY, STRINGS_TRIM_KEY
 
Fields inherited from class org.apache.velocity.tools.generic.LocaleConfig
DEFAULT_LOCALE
 
Fields inherited from class org.apache.velocity.tools.generic.SafeConfig
LOCK_CONFIG_KEY, OLD_LOCK_CONFIG_KEY, SAFE_MODE_KEY
 
Constructor Summary
ParameterTool()
          Constructs a new instance
ParameterTool(javax.servlet.ServletRequest request)
          Constructs a new instance using the specified request.
 
Method Summary
protected  void configure(ValueParser values)
          Does the actual configuration.
private  java.util.Map<java.lang.String,java.lang.Object> expandSingletonArrays(java.util.Map<java.lang.String,java.lang.Object> original)
           
 java.util.Map getAll()
          Returns the map of all parameters available for the current request.
protected  javax.servlet.ServletRequest getRequest()
          Returns the current ServletRequest for this instance.
protected  java.util.Map getSource()
          Overrides ValueParser.getSource() to return the result of getRequest().getParameterMap() and expand singleton arrays within it first.
 java.lang.Object getValue(java.lang.String key)
          Overrides ValueParser.getValue(String key) to retrieve the value from the ServletRequest instead of an arbitrary Map.
 java.lang.Object[] getValues(java.lang.String key)
          Overrides ValueParser.getValues(String key) to retrieve Strings from the ServletRequest instead of an arbitrary Map.
private  boolean isSingletonArray(java.lang.Object value)
           
 void setRequest(javax.servlet.ServletRequest request)
          Sets the current ServletRequest
protected  void setSource(java.util.Map source)
          Overrides ValueParser.setSource(Map source) to throw an UnsupportedOperationException, because this class uses a servlet request as its source, not a Map.
 
Methods inherited from class org.apache.velocity.tools.generic.ValueParser
clear, containsKey, containsValue, entrySet, exists, get, get, getAllowSubkeys, getBoolean, getBoolean, getBoolean, getBooleans, getDouble, getDouble, getDouble, getDoubles, getInt, getInteger, getInteger, getInts, getLocale, getLocale, getLocales, getNumber, getNumber, getNumbers, getReadOnly, getString, getString, getStrings, getSubkey, getValue, hasSubkeys, isEmpty, keySet, put, putAll, remove, setAllowSubkeys, setReadOnly, size, toString, values
 
Methods inherited from class org.apache.velocity.tools.generic.ConversionTool
getDateFormat, getNumberFormat, getStringsDelimiter, getStringsTrim, parseBoolean, parseDate, parseDate, parseDate, parseDate, parseDate, parseLocale, parseNumber, parseNumber, parseNumber, parseNumber, parseStringList, setDateFormat, setNumberFormat, setStringsDelimiter, setStringsTrim, toBoolean, toBooleans, toBooleans, toCalendar, toCalendars, toCalendars, toDate, toDates, toDates, toDouble, toDoubles, toInteger, toIntegers, toInts, toLocale, toLocales, toLocales, toNumber, toNumbers, toNumbers, toString, toStrings
 
Methods inherited from class org.apache.velocity.tools.generic.LocaleConfig
getLocale, setLocale
 
Methods inherited from class org.apache.velocity.tools.generic.SafeConfig
configure, isConfigLocked, isSafeMode, setLockConfig, setSafeMode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

request

private javax.servlet.ServletRequest request
Constructor Detail

ParameterTool

public ParameterTool()
Constructs a new instance


ParameterTool

public ParameterTool(javax.servlet.ServletRequest request)
Constructs a new instance using the specified request.

Parameters:
request - the ServletRequest to be parsed
Method Detail

configure

protected void configure(ValueParser values)
Description copied from class: ValueParser
Does the actual configuration. This is protected, so subclasses may share the same ValueParser and call configure at any time, while preventing templates from doing so when configure(Map) is locked.

Overrides:
configure in class ValueParser

setRequest

public void setRequest(javax.servlet.ServletRequest request)
Sets the current ServletRequest

Parameters:
request - the ServletRequest to be parsed

getRequest

protected javax.servlet.ServletRequest getRequest()
Returns the current ServletRequest for this instance.

Returns:
the current ServletRequest
Throws:
java.lang.UnsupportedOperationException - if the request is null

getValue

public java.lang.Object getValue(java.lang.String key)
Overrides ValueParser.getValue(String key) to retrieve the value from the ServletRequest instead of an arbitrary Map.

Overrides:
getValue in class ValueParser
Parameters:
key - the parameter's key
Returns:
parameter matching the specified key or null if there is no matching parameter

getValues

public java.lang.Object[] getValues(java.lang.String key)
Overrides ValueParser.getValues(String key) to retrieve Strings from the ServletRequest instead of an arbitrary Map.

Overrides:
getValues in class ValueParser
Parameters:
key - the key for the desired parameter
Returns:
an array of String objects containing all of the values the given request parameter has, or null if the parameter does not exist

setSource

protected void setSource(java.util.Map source)
Overrides ValueParser.setSource(Map source) to throw an UnsupportedOperationException, because this class uses a servlet request as its source, not a Map.

Overrides:
setSource in class ValueParser

getSource

protected java.util.Map getSource()
Overrides ValueParser.getSource() to return the result of getRequest().getParameterMap() and expand singleton arrays within it first.

Overrides:
getSource in class ValueParser

getAll

public java.util.Map getAll()
Returns the map of all parameters available for the current request.


isSingletonArray

private boolean isSingletonArray(java.lang.Object value)

expandSingletonArrays

private java.util.Map<java.lang.String,java.lang.Object> expandSingletonArrays(java.util.Map<java.lang.String,java.lang.Object> original)


Copyright (c) 2003-2007 Apache Software Foundation