Class ParameterTool

java.lang.Object
org.apache.velocity.tools.generic.SafeConfig
org.apache.velocity.tools.generic.LocaleConfig
org.apache.velocity.tools.generic.FormatConfig
org.apache.velocity.tools.generic.ValueParser
org.apache.velocity.tools.view.ParameterTool
All Implemented Interfaces:
Map<String,Object>

@DefaultKey("params") @ValidScope("request") public class ParameterTool extends org.apache.velocity.tools.generic.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$ $Date$
Author:
Nathan Bubna
  • Nested Class Summary

    Nested classes/interfaces inherited from interface Map

    Map.Entry<K,V>
  • Field Summary

    Fields inherited from class org.apache.velocity.tools.generic.ValueParser

    ALLOWSUBKEYS_KEY, DEFAULT_STRINGS_DELIMITER, READONLY_KEY, STRINGS_DELIMITER_FORMAT_KEY

    Fields inherited from class org.apache.velocity.tools.generic.FormatConfig

    DEFAULT_FORMAT, FORMAT_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, log, LOGGER_NAME_KEY, SAFE_MODE_KEY, USE_CLASS_LOGGER_KEY
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new instance
    ParameterTool(javax.servlet.ServletRequest request)
    Constructs a new instance using the specified request.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    configure(org.apache.velocity.tools.generic.ValueParser values)
     
     
    protected javax.servlet.ServletRequest
    Returns the current ServletRequest for this instance.
    protected Map
    Overrides ValueParser.getSource() to return the result of getRequest().getParameterMap() and expand singleton arrays within it first.
    Overrides ValueParser.getValue(String key) to retrieve the value from the ServletRequest instead of an arbitrary Map.
    Overrides ValueParser.getValues(String key) to retrieve Strings from the ServletRequest instead of an arbitrary Map.
    void
    setRequest(javax.servlet.ServletRequest request)
    Sets the current ServletRequest
    protected void
    setSource(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, getLong, getLong, getNumber, getNumber, getNumbers, getReadOnly, getSource, getString, getString, getStrings, getSubkey, getSubkeys, getValue, hasSubkeys, isEmpty, keySet, parseStringList, put, putAll, remove, setAllowSubkeys, setReadOnly, setStringsDelimiter, size, toString, values

    Methods inherited from class org.apache.velocity.tools.generic.FormatConfig

    getFormat, setFormat

    Methods inherited from class org.apache.velocity.tools.generic.LocaleConfig

    getLocale, setLocale, toLocale

    Methods inherited from class org.apache.velocity.tools.generic.SafeConfig

    configure, getLog, initLogger, isConfigLocked, isSafeMode, setLockConfig, setSafeMode

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • 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 Details

    • configure

      protected void configure(org.apache.velocity.tools.generic.ValueParser values)
      Overrides:
      configure in class org.apache.velocity.tools.generic.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:
      UnsupportedOperationException - if the request is null
    • getValue

      public Object getValue(String key)
      Overrides ValueParser.getValue(String key) to retrieve the value from the ServletRequest instead of an arbitrary Map.
      Overrides:
      getValue in class org.apache.velocity.tools.generic.ValueParser
      Parameters:
      key - the parameter's key
      Returns:
      parameter matching the specified key or null if there is no matching parameter
    • getValues

      public Object[] getValues(String key)
      Overrides ValueParser.getValues(String key) to retrieve Strings from the ServletRequest instead of an arbitrary Map.
      Overrides:
      getValues in class org.apache.velocity.tools.generic.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(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 org.apache.velocity.tools.generic.ValueParser
    • getSource

      protected Map getSource()
      Overrides ValueParser.getSource() to return the result of getRequest().getParameterMap() and expand singleton arrays within it first.
      Overrides:
      getSource in class org.apache.velocity.tools.generic.ValueParser
    • getAll

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