org.springframework.web.servlet.tags

## Class RequestContextAwareTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - org.springframework.web.servlet.tags.RequestContextAwareTag

- All Implemented Interfaces:
    Serializable, IterationTag, JspTag, Tag, TryCatchFinally
  Direct Known Subclasses:
    HtmlEscapeTag, HtmlEscapingAwareTag

      public abstract class RequestContextAwareTag
      extends TagSupport
      implements TryCatchFinally

  Superclass for all tags that require a `RequestContext`.

  The `RequestContext` instance provides easy access to current state like the `WebApplicationContext`, the `Locale`, the `Theme`, etc.

  Mainly intended for `DispatcherServlet` requests; will use fallbacks when used outside `DispatcherServlet`.

  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    `RequestContext`, `DispatcherServlet`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Log` | `logger` Logger available to subclasses
    `static String` | `REQUEST_CONTEXT_PAGE_ATTRIBUTE` `PageContext` attribute for the page-level `RequestContext` instance.

    - ### Fields inherited from class javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RequestContextAwareTag()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `doCatch(Throwable throwable)`
    `void` | `doFinally()`
    `int` | `doStartTag()` Create and expose the current RequestContext.
    `protected abstract int` | `doStartTagInternal()` Called by doStartTag to perform the actual work.
    `protected RequestContext` | `getRequestContext()` Return the current RequestContext.

    - ### Methods inherited from class javax.servlet.jsp.tagext.TagSupport

      `doAfterBody, doEndTag, findAncestorWithClass, getId, getParent, getValue, getValues, release, removeValue, setId, setPageContext, setParent, setValue`

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

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

- - ### Field Detail

    - #### REQUEST_CONTEXT_PAGE_ATTRIBUTE

          public static final String REQUEST_CONTEXT_PAGE_ATTRIBUTE

      `PageContext` attribute for the page-level `RequestContext` instance.
      See Also:
        Constant Field Values

    - #### logger

          protected final Log logger

      Logger available to subclasses

  - ### Constructor Detail

    - #### RequestContextAwareTag

          public RequestContextAwareTag()

  - ### Method Detail

    - #### doStartTag

          public final int doStartTag()
                               throws JspException

      Create and expose the current RequestContext. Delegates to `doStartTagInternal()` for actual work.
      Specified by:
        `doStartTag` in interface `Tag`
      Overrides:
        `doStartTag` in class `TagSupport`
      Throws:
        `JspException`
      See Also:
        `REQUEST_CONTEXT_PAGE_ATTRIBUTE`, `JspAwareRequestContext`

    - #### getRequestContext

          protected final RequestContext getRequestContext()

      Return the current RequestContext.

    - #### doStartTagInternal

          protected abstract int doStartTagInternal()
                                             throws Exception

      Called by doStartTag to perform the actual work.
      Returns:
        same as TagSupport.doStartTag
      Throws:
        `Exception` - any exception, any checked one other than a JspException gets wrapped in a JspException by doStartTag
      See Also:
        `TagSupport.doStartTag()`

    - #### doCatch

          public void doCatch(Throwable throwable)
                       throws Throwable

      Specified by:
        `doCatch` in interface `TryCatchFinally`
      Throws:
        `Throwable`

    - #### doFinally

          public void doFinally()

      Specified by:
        `doFinally` in interface `TryCatchFinally`