org.springframework.web.servlet.tags

## Class EscapeBodyTag

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

- All Implemented Interfaces:
    Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally

      public class EscapeBodyTag
      extends HtmlEscapingAwareTag
      implements BodyTag

  Custom JSP tag to escape its enclosed body content, applying HTML escaping and/or JavaScript escaping.

  Provides a "htmlEscape" property for explicitly specifying whether to apply HTML escaping. If not set, a page-level default (e.g. from the HtmlEscapeTag) or an application-wide default (the "defaultHtmlEscape" context-param in web.xml) is used.

  Provides a "javaScriptEscape" property for specifying whether to apply JavaScript escaping. Can be combined with HTML escaping or used standalone.

  Since:
    1.1.1
  Author:
    Juergen Hoeller
  See Also:
    `HtmlUtils`, `JavaScriptUtils`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag

      `logger, REQUEST_CONTEXT_PAGE_ATTRIBUTE`

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

      `id, pageContext`

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

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### 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
    `EscapeBodyTag()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `doAfterBody()`
    `void` | `doInitBody()`
    `protected int` | `doStartTagInternal()` Called by doStartTag to perform the actual work.
    `protected String` | `readBodyContent()` Read the unescaped body content from the page.
    `void` | `setBodyContent(BodyContent bodyContent)`
    `void` | `setJavaScriptEscape(String javaScriptEscape)` Set JavaScript escaping for this tag, as boolean value.
    `protected void` | `writeBodyContent(String content)` Write the escaped body content to the page.

    - ### Methods inherited from class org.springframework.web.servlet.tags.HtmlEscapingAwareTag

      `isDefaultHtmlEscape, isHtmlEscape, setHtmlEscape`

    - ### Methods inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag

      `doCatch, doFinally, doStartTag, getRequestContext`

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

      `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`

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

      `doEndTag, doStartTag, getParent, release, setPageContext, setParent`

- - ### Constructor Detail

    - #### EscapeBodyTag

          public EscapeBodyTag()

  - ### Method Detail

    - #### setJavaScriptEscape

          public void setJavaScriptEscape(String javaScriptEscape)
                                   throws JspException

      Set JavaScript escaping for this tag, as boolean value. Default is "false".
      Throws:
        `JspException`

    - #### doStartTagInternal

          protected int doStartTagInternal()

      Description copied from class: `RequestContextAwareTag`
      Called by doStartTag to perform the actual work.
      Specified by:
        `doStartTagInternal` in class `RequestContextAwareTag`
      Returns:
        same as TagSupport.doStartTag
      See Also:
        `TagSupport.doStartTag()`

    - #### doInitBody

          public void doInitBody()

      Specified by:
        `doInitBody` in interface `BodyTag`

    - #### setBodyContent

          public void setBodyContent(BodyContent bodyContent)

      Specified by:
        `setBodyContent` in interface `BodyTag`

    - #### doAfterBody

          public int doAfterBody()
                          throws JspException

      Specified by:
        `doAfterBody` in interface `IterationTag`
      Overrides:
        `doAfterBody` in class `TagSupport`
      Throws:
        `JspException`

    - #### readBodyContent

          protected String readBodyContent()
                                    throws IOException

      Read the unescaped body content from the page.
      Returns:
        the original content
      Throws:
        `IOException` - if reading failed

    - #### writeBodyContent

          protected void writeBodyContent(String content)
                                   throws IOException

      Write the escaped body content to the page.

      Can be overridden in subclasses, e.g. for testing purposes.

      Parameters:
        `content` - the content to write
      Throws:
        `IOException` - if writing failed