org.apache.velocity.tools.view

## 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(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$ $Date$
Author:
  Nathan Bubna

### Nested Class Summary

### Nested classes/interfaces inherited from interface java.util.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 and Description
`ParameterTool()` Constructs a new instance
`ParameterTool(javax.servlet.ServletRequest request)` Constructs a new instance using the specified request.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `configure(ValueParser values)`
`Map` `getAll()`
`protected javax.servlet.ServletRequest` `getRequest()` Returns the current `ServletRequest` for this instance.
`protected Map` `getSource()` Overrides ValueParser.getSource() to return the result of getRequest().getParameterMap() and expand singleton arrays within it first.
`Object` `getValue(String key)` Overrides ValueParser.getValue(String key) to retrieve the value from the ServletRequest instead of an arbitrary Map.
`Object[]` `getValues(String key)` 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 java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Map

`compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll`

### 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)

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:
  `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 `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 `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 `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 `ValueParser`

#### getAll

    public Map getAll()

Returns:
  the map of all parameters available for the current request.