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:
Map<String,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: 961796 $ $Date: 2010-07-08 17:18:15 +0200 (jeu., 08 juil. 2010) $
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, 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(ServletRequest request)
          Constructs a new instance using the specified request.
 
Method Summary
protected  void configure(ValueParser values)
          Does the actual configuration.
 Map getAll()
          Returns the map of all parameters available for the current request.
protected  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(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, 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
 

Constructor Detail

ParameterTool

public ParameterTool()
Constructs a new instance


ParameterTool

public ParameterTool(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(ServletRequest request)
Sets the current ServletRequest

Parameters:
request - the ServletRequest to be parsed

getRequest

protected 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.



Copyright © 2002-2011 The Apache Software Foundation. All Rights Reserved.