The Spring Framework

## org.springframework.web.portlet.util
Class PortletUtils

    java.lang.Object
      org.springframework.web.portlet.util.PortletUtils

    public abstract class PortletUtils

extends Object

Miscellaneous utilities for portlet applications. Used by various framework classes.

Since:
  2.0
Author:
  Juergen Hoeller, William G. Thompson, Jr., John A. Lewis

Constructor Summary
`PortletUtils()`

Method Summary
`static void` `clearAllRenderParameters(javax.portlet.ActionResponse response)` Clear all the render parameters from the `ActionResponse`.
`static void` `exposeRequestAttributes(javax.portlet.PortletRequest request, Map attributes)` Expose the given Map as request attributes, using the keys as attribute names and the values as corresponding attribute values.
`static Object` `getOrCreateSessionAttribute(javax.portlet.PortletSession session, String name, Class clazz)` Get the specified session attribute under the `PortletSession.PORTLET_SCOPE`, creating and setting a new attribute if no existing found.
`static Object` `getOrCreateSessionAttribute(javax.portlet.PortletSession session, String name, Class clazz, int scope)` Get the specified session attribute in the given scope, creating and setting a new attribute if no existing found.
`static Map` `getParametersStartingWith(javax.portlet.PortletRequest request, String prefix)` Return a map containing all parameters with the given prefix.
`static String` `getRealPath(javax.portlet.PortletContext portletContext, String path)` Return the real path of the given path within the web application, as provided by the portlet container.
`static Object` `getRequiredSessionAttribute(javax.portlet.PortletRequest request, String name)` Check the given request for a session attribute of the given name under the `PortletSession.PORTLET_SCOPE`.
`static Object` `getRequiredSessionAttribute(javax.portlet.PortletRequest request, String name, int scope)` Check the given request for a session attribute of the given name in the given scope.
`static Object` `getSessionAttribute(javax.portlet.PortletRequest request, String name)` Check the given request for a session attribute of the given name under the `PortletSession.PORTLET_SCOPE`.
`static Object` `getSessionAttribute(javax.portlet.PortletRequest request, String name, int scope)` Check the given request for a session attribute of the given name in the given scope.
`static Object` `getSessionMutex(javax.portlet.PortletSession session)` Return the best available mutex for the given session: that is, an object to synchronize on for the given session.
`static String` `getSubmitParameter(javax.portlet.PortletRequest request, String name)` Return the full name of a specific input type="submit" parameter if it was sent in the request, either via a button (directly with name) or via an image (name + ".x" or name + ".y").
`static int` `getTargetPage(javax.portlet.PortletRequest request, String paramPrefix, int currentPage)` Return the target page specified in the request.
`static File` `getTempDir(javax.portlet.PortletContext portletContext)` Return the temporary directory for the current web application, as provided by the portlet container.
`static boolean` `hasSubmitParameter(javax.portlet.PortletRequest request, String name)` Check if a specific input type="submit" parameter was sent in the request, either via a button (directly with name) or via an image (name + ".x" or name + ".y").
`static void` `passAllParametersToRenderPhase(javax.portlet.ActionRequest request, javax.portlet.ActionResponse response)` Pass all the action request parameters to the render phase by putting them into the action response object.
`static void` `setSessionAttribute(javax.portlet.PortletRequest request, String name, Object value)` Set the session attribute with the given name to the given value under the `PortletSession.PORTLET_SCOPE`.
`static void` `setSessionAttribute(javax.portlet.PortletRequest request, String name, Object value, int scope)` Set the session attribute with the given name to the given value in the given scope.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PortletUtils

    public PortletUtils()

Method Detail

### getTempDir

    public static File getTempDir(javax.portlet.PortletContext portletContext)

  Return the temporary directory for the current web application, as provided by the portlet container.

  Parameters:
    `portletContext` - the portlet context of the web application
  Returns:
    the File representing the temporary directory

### getRealPath

    public static String getRealPath(javax.portlet.PortletContext portletContext,
                                     String path)
                              throws FileNotFoundException

  Return the real path of the given path within the web application, as provided by the portlet container.

  Prepends a slash if the path does not already start with a slash, and throws a `FileNotFoundException` if the path cannot be resolved to a resource (in contrast to `PortletContext's `getRealPath``, which simply returns `null`).

  Parameters:
    `portletContext` - the portlet context of the web application
    `path` - the relative path within the web application
  Returns:
    the corresponding real path
  Throws:
    `FileNotFoundException` - if the path cannot be resolved to a resource
  See Also:
    `PortletContext.getRealPath(java.lang.String)`

### getSessionAttribute

    public static Object getSessionAttribute(javax.portlet.PortletRequest request,
                                             String name)

  Check the given request for a session attribute of the given name under the `PortletSession.PORTLET_SCOPE`. Returns `null` if there is no session or if the session has no such attribute in that scope. Does not create a new session if none has existed before!

  Parameters:
    `request` - current portlet request
    `name` - the name of the session attribute
  Returns:
    the value of the session attribute, or `null` if not found

### getSessionAttribute

    public static Object getSessionAttribute(javax.portlet.PortletRequest request,
                                             String name,
                                             int scope)

  Check the given request for a session attribute of the given name in the given scope. Returns `null` if there is no session or if the session has no such attribute in that scope. Does not create a new session if none has existed before!

  Parameters:
    `request` - current portlet request
    `name` - the name of the session attribute
    `scope` - session scope of this attribute
  Returns:
    the value of the session attribute, or `null` if not found

### getRequiredSessionAttribute

    public static Object getRequiredSessionAttribute(javax.portlet.PortletRequest request,
                                                     String name)
                                              throws IllegalStateException

  Check the given request for a session attribute of the given name under the `PortletSession.PORTLET_SCOPE`. Throws an exception if there is no session or if the session has no such attribute in that scope.

  Does not create a new session if none has existed before!

  Parameters:
    `request` - current portlet request
    `name` - the name of the session attribute
  Returns:
    the value of the session attribute
  Throws:
    `IllegalStateException` - if the session attribute could not be found

### getRequiredSessionAttribute

    public static Object getRequiredSessionAttribute(javax.portlet.PortletRequest request,
                                                     String name,
                                                     int scope)
                                              throws IllegalStateException

  Check the given request for a session attribute of the given name in the given scope. Throws an exception if there is no session or if the session has no such attribute in that scope.

  Does not create a new session if none has existed before!

  Parameters:
    `request` - current portlet request
    `name` - the name of the session attribute
    `scope` - session scope of this attribute
  Returns:
    the value of the session attribute
  Throws:
    `IllegalStateException` - if the session attribute could not be found

### setSessionAttribute

    public static void setSessionAttribute(javax.portlet.PortletRequest request,
                                           String name,
                                           Object value)

  Set the session attribute with the given name to the given value under the `PortletSession.PORTLET_SCOPE`. Removes the session attribute if value is `null`, if a session existed at all. Does not create a new session if not necessary!

  Parameters:
    `request` - current portlet request
    `name` - the name of the session attribute
    `value` - the value of the session attribute

### setSessionAttribute

    public static void setSessionAttribute(javax.portlet.PortletRequest request,
                                           String name,
                                           Object value,
                                           int scope)

  Set the session attribute with the given name to the given value in the given scope. Removes the session attribute if value is `null`, if a session existed at all. Does not create a new session if not necessary!

  Parameters:
    `request` - current portlet request
    `name` - the name of the session attribute
    `value` - the value of the session attribute
    `scope` - session scope of this attribute

### getOrCreateSessionAttribute

    public static Object getOrCreateSessionAttribute(javax.portlet.PortletSession session,
                                                     String name,
                                                     Class clazz)
                                              throws IllegalArgumentException

  Get the specified session attribute under the `PortletSession.PORTLET_SCOPE`, creating and setting a new attribute if no existing found. The given class needs to have a public no-arg constructor. Useful for on-demand state objects in a web tier, like shopping carts.

  Parameters:
    `session` - current portlet session
    `name` - the name of the session attribute
    `clazz` - the class to instantiate for a new attribute
  Returns:
    the value of the session attribute, newly created if not found
  Throws:
    `IllegalArgumentException` - if the session attribute could not be instantiated

### getOrCreateSessionAttribute

    public static Object getOrCreateSessionAttribute(javax.portlet.PortletSession session,
                                                     String name,
                                                     Class clazz,
                                                     int scope)
                                              throws IllegalArgumentException

  Get the specified session attribute in the given scope, creating and setting a new attribute if no existing found. The given class needs to have a public no-arg constructor. Useful for on-demand state objects in a web tier, like shopping carts.

  Parameters:
    `session` - current portlet session
    `name` - the name of the session attribute
    `clazz` - the class to instantiate for a new attribute
    `scope` - the session scope of this attribute
  Returns:
    the value of the session attribute, newly created if not found
  Throws:
    `IllegalArgumentException` - if the session attribute could not be instantiated

### getSessionMutex

    public static Object getSessionMutex(javax.portlet.PortletSession session)

  Return the best available mutex for the given session: that is, an object to synchronize on for the given session.

  Returns the session mutex attribute if available; usually, this means that the `HttpSessionMutexListener` needs to be defined in `web.xml`. Falls back to the `PortletSession` itself if no mutex attribute found.

  The session mutex is guaranteed to be the same object during the entire lifetime of the session, available under the key defined by the `WebUtils.SESSION_MUTEX_ATTRIBUTE` constant. It serves as a safe reference to synchronize on for locking on the current session.

  In many cases, the `PortletSession` reference itself is a safe mutex as well, since it will always be the same object reference for the same active logical session. However, this is not guaranteed across different servlet containers; the only 100% safe way is a session mutex.

  Parameters:
    `session` - the HttpSession to find a mutex for
  Returns:
    the mutex object (never `null`)
  See Also:
    `WebUtils.SESSION_MUTEX_ATTRIBUTE`, `HttpSessionMutexListener`

### exposeRequestAttributes

    public static void exposeRequestAttributes(javax.portlet.PortletRequest request,
                                               Map attributes)

  Expose the given Map as request attributes, using the keys as attribute names and the values as corresponding attribute values. Keys must be Strings.

  Parameters:
    `request` - current portlet request
    `attributes` - the attributes Map

### hasSubmitParameter

    public static boolean hasSubmitParameter(javax.portlet.PortletRequest request,
                                             String name)

  Check if a specific input type="submit" parameter was sent in the request, either via a button (directly with name) or via an image (name + ".x" or name + ".y").

  Parameters:
    `request` - current portlet request
    `name` - name of the parameter
  Returns:
    if the parameter was sent
  See Also:
    `WebUtils.SUBMIT_IMAGE_SUFFIXES`

### getSubmitParameter

    public static String getSubmitParameter(javax.portlet.PortletRequest request,
                                            String name)

  Return the full name of a specific input type="submit" parameter if it was sent in the request, either via a button (directly with name) or via an image (name + ".x" or name + ".y").

  Parameters:
    `request` - current portlet request
    `name` - name of the parameter
  Returns:
    the actual parameter name with suffix if needed - null if not present
  See Also:
    `WebUtils.SUBMIT_IMAGE_SUFFIXES`

### getParametersStartingWith

    public static Map getParametersStartingWith(javax.portlet.PortletRequest request,
                                                String prefix)

  Return a map containing all parameters with the given prefix. Maps single values to String and multiple values to String array.

  For example, with a prefix of "spring_", "spring_param1" and "spring_param2" result in a Map with "param1" and "param2" as keys.

  Similar to portlet `PortletRequest.getParameterMap()`, but more flexible.

  Parameters:
    `request` - portlet request in which to look for parameters
    `prefix` - the beginning of parameter names (if this is `null` or the empty string, all parameters will match)
  Returns:
    map containing request parameters without the prefix, containing either a String or a String array as values
  See Also:
    `PortletRequest.getParameterNames()`, `PortletRequest.getParameterValues(java.lang.String)`, `PortletRequest.getParameterMap()`

### getTargetPage

    public static int getTargetPage(javax.portlet.PortletRequest request,
                                    String paramPrefix,
                                    int currentPage)

  Return the target page specified in the request.

  Parameters:
    `request` - current portlet request
    `paramPrefix` - the parameter prefix to check for (e.g. "_target" for parameters like "_target1" or "_target2")
    `currentPage` - the current page, to be returned as fallback if no target page specified
  Returns:
    the page specified in the request, or current page if not found

### passAllParametersToRenderPhase

    public static void passAllParametersToRenderPhase(javax.portlet.ActionRequest request,
                                                      javax.portlet.ActionResponse response)

  Pass all the action request parameters to the render phase by putting them into the action response object. This may not be called when the action will call `sendRedirect`.

  Parameters:
    `request` - the current action request
    `response` - the current action response
  See Also:
    `ActionResponse.setRenderParameter(java.lang.String, java.lang.String)`

### clearAllRenderParameters

    public static void clearAllRenderParameters(javax.portlet.ActionResponse response)

  Clear all the render parameters from the `ActionResponse`. This may not be called when the action will call `sendRedirect`.

  Parameters:
    `response` - the current action response
  See Also:
    `ActionResponse.setRenderParameters(java.util.Map)`

The Spring Framework

Copyright © 2002-2008 The Spring Framework.