Package org.apache.struts2.dispatcher

# Class StrutsRequestWrapper

java.lang.Object
jakarta.servlet.ServletRequestWrapper
jakarta.servlet.http.HttpServletRequestWrapper
org.apache.struts2.dispatcher.StrutsRequestWrapper

All Implemented Interfaces:
  `jakarta.servlet.http.HttpServletRequest`, `jakarta.servlet.ServletRequest`

Direct Known Subclasses:
  `MultiPartRequestWrapper`

public class StrutsRequestWrapper extends jakarta.servlet.http.HttpServletRequestWrapper
All Struts requests are wrapped with this class, which provides simple JSTL accessibility. This is because JSTL works with request attributes, so this class delegates to the value stack except for a few cases where required to prevent infinite loops. Namely, we don't let any attribute name with "#" in it delegate out to the value stack, as it could potentially cause an infinite loop. For example, an infinite loop would take place if you called: request.getAttribute("#attr.foo").

- ## Field Summary

  ### Fields inherited from interface jakarta.servlet.http.HttpServletRequest

  `BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StrutsRequestWrapper(jakarta.servlet.http.HttpServletRequest req)`
  The constructor
  `StrutsRequestWrapper(jakarta.servlet.http.HttpServletRequest req, boolean disableRequestAttributeValueStackLookup)`
  The constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getAttribute(String key)`
  Gets the object, looking in the value stack if not found

  ### Methods inherited from class jakarta.servlet.http.HttpServletRequestWrapper

  `authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgrade`

  ### Methods inherited from class jakarta.servlet.ServletRequestWrapper

  `getAsyncContext, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getProtocolRequestId, getReader, getRemoteAddr, getRemoteHost, getRemotePort, getRequest, getRequestDispatcher, getRequestId, getScheme, getServerName, getServerPort, getServletConnection, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, isWrapperFor, isWrapperFor, removeAttribute, setAttribute, setCharacterEncoding, setRequest, startAsync, startAsync`

  ### Methods inherited from class java.lang.Object

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

  ### Methods inherited from interface jakarta.servlet.ServletRequest

  `getAsyncContext, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getProtocolRequestId, getReader, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getRequestId, getScheme, getServerName, getServerPort, getServletConnection, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync`

- ## Constructor Details

  - ### StrutsRequestWrapper

    public StrutsRequestWrapper(jakarta.servlet.http.HttpServletRequest req)
    The constructor
    Parameters:
      `req` - The request

  - ### StrutsRequestWrapper

    public StrutsRequestWrapper(jakarta.servlet.http.HttpServletRequest req, boolean disableRequestAttributeValueStackLookup)
    The constructor
    Parameters:
      `req` - The request
      `disableRequestAttributeValueStackLookup` - flag for disabling request attribute value stack lookup (JSTL accessibility)

- ## Method Details

  - ### getAttribute

    public Object getAttribute(String key)
    Gets the object, looking in the value stack if not found
    Specified by:
      `getAttribute` in interface `jakarta.servlet.ServletRequest`
    Overrides:
      `getAttribute` in class `jakarta.servlet.ServletRequestWrapper`
    Parameters:
      `key` - The attribute key