## org.springframework.web.servlet.tags
Class MessageTag

    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.MessageTag

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

Direct Known Subclasses:
  ThemeTag

    public class MessageTag

extends HtmlEscapingAwareTag

Custom JSP tag to look up a message in the scope of this page. Messages are resolved using the ApplicationContext and thus support internationalization.

Detects an HTML escaping setting, either on this tag instance, the page level, or the `web.xml` level. Can also apply JavaScript escaping.

If "code" isn't set or cannot be resolved, "text" will be used as default message. Thus, this tag can also be used for HTML escaping of any texts.

Author:
  Rod Johnson, Juergen Hoeller
See Also:
  `setCode(java.lang.String)`, `setText(java.lang.String)`, `HtmlEscapingAwareTag.setHtmlEscape(java.lang.String)`, `setJavaScriptEscape(java.lang.String)`, `HtmlEscapeTag.setDefaultHtmlEscape(java.lang.String)`, `WebUtils.HTML_ESCAPE_CONTEXT_PARAM`, Serialized Form

Field Summary
`static String` `DEFAULT_ARGUMENT_SEPARATOR` Default separator for splitting an arguments String: a comma (",")

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.IterationTag
`EVAL_BODY_AGAIN`

Fields inherited from interface javax.servlet.jsp.tagext.Tag
`EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

Constructor Summary
`MessageTag()`

Method Summary
`protected int` `doStartTagInternal()` Resolves the message, escapes it if demanded, and writes it to the page (or exposes it as variable).
`protected MessageSource` `getMessageSource()` Use the current RequestContext's application context as MessageSource.
`protected String` `getNoSuchMessageExceptionDescription(NoSuchMessageException ex)` Return default exception message.
`protected Object[]` `resolveArguments(Object arguments)` Resolve the given arguments Object into an arguments array.
`protected String` `resolveMessage()` Resolve the specified message into a concrete message String.
`void` `setArguments(Object arguments)` Set optional message arguments for this tag, as a comma-delimited String (each String argument can contain JSP EL), an Object array (used as argument array), or a single Object (used as single argument).
`void` `setArgumentSeparator(String argumentSeparator)` Set the separator to use for splitting an arguments String.
`void` `setCode(String code)` Set the message code for this tag.
`void` `setJavaScriptEscape(String javaScriptEscape)` Set JavaScript escaping for this tag, as boolean value.
`void` `setMessage(Object message)` Set the MessageSourceResolvable for this tag.
`void` `setScope(String scope)` Set the scope to export the variable to.
`void` `setText(String text)` Set the message text for this tag.
`void` `setVar(String var)` Set PageContext attribute name under which to expose a variable that contains the resolved message.
`protected void` `writeMessage(String msg)` Write the message 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
`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

### DEFAULT_ARGUMENT_SEPARATOR

    public static final String DEFAULT_ARGUMENT_SEPARATOR

  Default separator for splitting an arguments String: a comma (",")

  See Also:
    Constant Field Values

Constructor Detail

### MessageTag

    public MessageTag()

Method Detail

### setMessage

    public void setMessage(Object message)

  Set the MessageSourceResolvable for this tag. Accepts a direct MessageSourceResolvable instance as well as a JSP expression language String that points to a MessageSourceResolvable.

  If a MessageSourceResolvable is specified, it effectively overrides any code, arguments or text specified on this tag.

### setCode

    public void setCode(String code)

  Set the message code for this tag.

### setArguments

    public void setArguments(Object arguments)

  Set optional message arguments for this tag, as a comma-delimited String (each String argument can contain JSP EL), an Object array (used as argument array), or a single Object (used as single argument).

### setArgumentSeparator

    public void setArgumentSeparator(String argumentSeparator)

  Set the separator to use for splitting an arguments String. Default is a comma (",").

  See Also:
    `setArguments(java.lang.Object)`

### setText

    public void setText(String text)

  Set the message text for this tag.

### setVar

    public void setVar(String var)

  Set PageContext attribute name under which to expose a variable that contains the resolved message.

  See Also:
    `setScope(java.lang.String)`, `JspContext.setAttribute(java.lang.String, java.lang.Object)`

### setScope

    public void setScope(String scope)

  Set the scope to export the variable to. Default is SCOPE_PAGE ("page").

  See Also:
    `setVar(java.lang.String)`, `TagUtils.SCOPE_PAGE`, `JspContext.setAttribute(java.lang.String, java.lang.Object)`

### setJavaScriptEscape

    public void setJavaScriptEscape(String javaScriptEscape)
                             throws JspException

  Set JavaScript escaping for this tag, as boolean value. Default is "false".

  Throws:
    `JspException`

### doStartTagInternal

    protected final int doStartTagInternal()
                                    throws JspException,
                                           IOException

  Resolves the message, escapes it if demanded, and writes it to the page (or exposes it as variable).

  Specified by:
    `doStartTagInternal` in class `RequestContextAwareTag`
  Returns:
    same as TagSupport.doStartTag
  Throws:
    `JspException`
    `IOException`
  See Also:
    `resolveMessage()`, `HtmlUtils.htmlEscape(String)`, `JavaScriptUtils.javaScriptEscape(String)`, `writeMessage(String)`

### resolveMessage

    protected String resolveMessage()
                             throws JspException,
                                    NoSuchMessageException

  Resolve the specified message into a concrete message String. The returned message String should be unescaped.

  Throws:
    `JspException`
    `NoSuchMessageException`

### resolveArguments

    protected Object[] resolveArguments(Object arguments)
                                 throws JspException

  Resolve the given arguments Object into an arguments array.

  Parameters:
    `arguments` - the specified arguments Object
  Returns:
    the resolved arguments as array
  Throws:
    `JspException` - if argument conversion failed
  See Also:
    `setArguments(java.lang.Object)`

### writeMessage

    protected void writeMessage(String msg)
                         throws IOException

  Write the message to the page.

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

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

### getMessageSource

    protected MessageSource getMessageSource()

  Use the current RequestContext's application context as MessageSource.

### getNoSuchMessageExceptionDescription

    protected String getNoSuchMessageExceptionDescription(NoSuchMessageException ex)

  Return default exception message.