类 PortletUtils


  • public abstract class PortletUtils
    extends Object
    Miscellaneous utilities for portlet applications. Used by various framework classes.
    从以下版本开始:
    2.0
    作者:
    Juergen Hoeller, William G. Thompson, Jr., John A. Lewis
    • 方法详细资料

      • getTempDir

        public static File getTempDir​(PortletContext portletContext)
        Return the temporary directory for the current web application, as provided by the portlet container.
        参数:
        portletContext - the portlet context of the web application
        返回:
        the File representing the temporary directory
      • getSessionAttribute

        public static Object getSessionAttribute​(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!
        参数:
        request - current portlet request
        name - the name of the session attribute
        返回:
        the value of the session attribute, or null if not found
      • getSessionAttribute

        public static Object getSessionAttribute​(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!
        参数:
        request - current portlet request
        name - the name of the session attribute
        scope - session scope of this attribute
        返回:
        the value of the session attribute, or null if not found
      • getRequiredSessionAttribute

        public static Object getRequiredSessionAttribute​(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!

        参数:
        request - current portlet request
        name - the name of the session attribute
        scope - session scope of this attribute
        返回:
        the value of the session attribute
        抛出:
        IllegalStateException - if the session attribute could not be found
      • setSessionAttribute

        public static void setSessionAttribute​(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!
        参数:
        request - current portlet request
        name - the name of the session attribute
        value - the value of the session attribute
      • setSessionAttribute

        public static void setSessionAttribute​(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!
        参数:
        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​(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.
        参数:
        session - current portlet session
        name - the name of the session attribute
        clazz - the class to instantiate for a new attribute
        返回:
        the value of the session attribute, newly created if not found
        抛出:
        IllegalArgumentException - if the session attribute could not be instantiated
      • getOrCreateSessionAttribute

        public static Object getOrCreateSessionAttribute​(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.
        参数:
        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
        返回:
        the value of the session attribute, newly created if not found
        抛出:
        IllegalArgumentException - if the session attribute could not be instantiated
      • getSessionMutex

        public static Object getSessionMutex​(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.

        参数:
        session - the HttpSession to find a mutex for
        返回:
        the mutex object (never null)
        另请参阅:
        WebUtils.SESSION_MUTEX_ATTRIBUTE, HttpSessionMutexListener
      • getNativeRequest

        public static <T> T getNativeRequest​(PortletRequest request,
                                             Class<T> requiredType)
        Return an appropriate request object of the specified type, if available, unwrapping the given request as far as necessary.
        参数:
        request - the portlet request to introspect
        requiredType - the desired type of request object
        返回:
        the matching request object, or null if none of that type is available
      • getNativeResponse

        public static <T> T getNativeResponse​(PortletResponse response,
                                              Class<T> requiredType)
        Return an appropriate response object of the specified type, if available, unwrapping the given response as far as necessary.
        参数:
        response - the portlet response to introspect
        requiredType - the desired type of response object
        返回:
        the matching response object, or null if none of that type is available
      • exposeRequestAttributes

        public static void exposeRequestAttributes​(PortletRequest request,
                                                   Map<String,​?> 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.
        参数:
        request - current portlet request
        attributes - the attributes Map
      • getCookie

        public static Cookie getCookie​(PortletRequest request,
                                       String name)
        Retrieve the first cookie with the given name. Note that multiple cookies can have the same name but different paths or domains.
        参数:
        request - current portlet request
        name - cookie name
        返回:
        the first cookie with the given name, or null if none is found
      • hasSubmitParameter

        public static boolean hasSubmitParameter​(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").
        参数:
        request - current portlet request
        name - name of the parameter
        返回:
        if the parameter was sent
        另请参阅:
        WebUtils.SUBMIT_IMAGE_SUFFIXES
      • getSubmitParameter

        public static String getSubmitParameter​(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").
        参数:
        request - current portlet request
        name - name of the parameter
        返回:
        the actual parameter name with suffix if needed - null if not present
        另请参阅:
        WebUtils.SUBMIT_IMAGE_SUFFIXES
      • getTargetPage

        public static int getTargetPage​(PortletRequest request,
                                        String paramPrefix,
                                        int currentPage)
        Return the target page specified in the request.
        参数:
        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
        返回:
        the page specified in the request, or current page if not found
      • serveResource

        public static void serveResource​(ResourceRequest request,
                                         ResourceResponse response,
                                         PortletContext context)
                                  throws PortletException,
                                         IOException
        Serve the resource as specified in the given request to the given response, using the PortletContext's request dispatcher.

        This is roughly equivalent to Portlet 2.0 GenericPortlet.

        参数:
        request - the current resource request
        response - the current resource response
        context - the current Portlet's PortletContext
        抛出:
        PortletException - propagated from Portlet API's forward method
        IOException - propagated from Portlet API's forward method