Package org.springframework.web.servlet.tags

# Class EscapeBodyTag

java.lang.Object
jakarta.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:
  `BodyTag`, `IterationTag`, `JspTag`, `Tag`, `TryCatchFinally`, `Serializable`

public class EscapeBodyTag extends HtmlEscapingAwareTag implements BodyTag
The `<escapeBody>` tag is used 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 (for example, 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.

Attribute Summary
Attribute | Required? | Runtime Expression? | Description
--- | --- | --- | ---
htmlEscape | false | true | Set HTML escaping for this tag, as boolean value. Overrides the default HTML escaping setting for the current page.
javaScriptEscape | false | true | Set JavaScript escaping for this tag, as boolean value. Default is `false`.

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 jakarta.servlet.jsp.tagext.TagSupport

`id, pageContext`

### Fields inherited from interface jakarta.servlet.jsp.tagext.BodyTag

`EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

### Fields inherited from interface jakarta.servlet.jsp.tagext.IterationTag

`EVAL_BODY_AGAIN`

### Fields inherited from interface jakarta.servlet.jsp.tagext.Tag

`EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

## Constructor Summary

Constructors
Constructor
Description
`EscapeBodyTag()`

## Method Summary

Modifier and Type
Method
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(boolean 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

`htmlEscape, isDefaultHtmlEscape, isHtmlEscape, isResponseEncodedHtmlEscape, setHtmlEscape`

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

`doCatch, doFinally, doStartTag, getRequestContext`

### Methods inherited from class jakarta.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 jakarta.servlet.jsp.tagext.Tag

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

## Constructor Details

### EscapeBodyTag

public EscapeBodyTag()

## Method Details

### setJavaScriptEscape

public void setJavaScriptEscape(boolean 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, for example, for testing purposes.

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