Class MessageTag
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.MessageTag
- All Implemented Interfaces:
IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
,ArgumentAware
- Direct Known Subclasses:
ThemeTag
The
<message>
tag looks 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.
Message arguments can be specified via the arguments
attribute or by using nested <spring:argument>
tags.
Attribute | Required? | Runtime Expression? | Description |
---|---|---|---|
arguments | false | true | 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). |
argumentSeparator | false | true | The separator character to be used for splitting the arguments string value; defaults to a 'comma' (','). |
code | false | true | The code (key) to use when looking up the message. If code is not provided, the text attribute will be used. |
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 . |
message | false | true | A MessageSourceResolvable argument (direct or through JSP EL). Fits nicely when used in conjunction with Spring’s own validation error classes which all implement the MessageSourceResolvable interface. For example, this allows you to iterate over all of the errors in a form, passing each error (using a runtime expression) as the value of this 'message' attribute, thus effecting the easy display of such error messages. |
scope | false | true | The scope to use when exporting the result to a variable. This attribute is only used when var is also set. Possible values are page, request, session and application. |
text | false | true | Default text to output when a message for the given code could not be found. If both text and code are not set, the tag will output null. |
var | false | true | The string to use when binding the result to the page, request, session or application scope. If not specified, the result gets outputted to the writer (i.e. typically directly to the JSP). |
- Author:
- Rod Johnson, Juergen Hoeller, Nicholas Williams
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
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 jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addArgument
(Object argument) Callback hook for nested spring:argument tags to pass their value to the parent tag.int
doEndTag()
Resolves the message, escapes it if demanded, and writes it to the page (or exposes it as variable).protected final int
Called by doStartTag to perform the actual work.protected MessageSource
Use the current RequestContext's application context as MessageSource.protected String
Return default exception message.void
release()
protected Object[]
resolveArguments
(Object arguments) Resolve the given arguments Object into an arguments array.protected String
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
Set the message code for this tag.void
setJavaScriptEscape
(boolean javaScriptEscape) Set JavaScript escaping for this tag, as boolean value.void
setMessage
(MessageSourceResolvable message) Set the MessageSourceResolvable for this tag.void
Set the scope to export the variable to.void
Set the message text for this tag.void
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
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
doAfterBody, findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
-
Field Details
-
DEFAULT_ARGUMENT_SEPARATOR
Default separator for splitting an arguments String: a comma (",").- See Also:
-
-
Constructor Details
-
MessageTag
public MessageTag()
-
-
Method Details
-
setMessage
Set the MessageSourceResolvable for this tag.If a MessageSourceResolvable is specified, it effectively overrides any code, arguments or text specified on this tag.
-
setCode
Set the message code for this tag. -
setArguments
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
Set the separator to use for splitting an arguments String. Default is a comma (",").- See Also:
-
addArgument
Description copied from interface:ArgumentAware
Callback hook for nested spring:argument tags to pass their value to the parent tag.- Specified by:
addArgument
in interfaceArgumentAware
- Parameters:
argument
- the result of the nestedspring:argument
tag- Throws:
JspTagException
-
setText
Set the message text for this tag. -
setVar
Set PageContext attribute name under which to expose a variable that contains the resolved message. -
setScope
Set the scope to export the variable to. Default is SCOPE_PAGE ("page"). -
setJavaScriptEscape
Set JavaScript escaping for this tag, as boolean value. Default is "false".- Throws:
JspException
-
doStartTagInternal
Description copied from class:RequestContextAwareTag
Called by doStartTag to perform the actual work.- Specified by:
doStartTagInternal
in classRequestContextAwareTag
- Returns:
- same as TagSupport.doStartTag
- Throws:
JspException
IOException
- See Also:
-
doEndTag
Resolves the message, escapes it if demanded, and writes it to the page (or exposes it as variable).- Specified by:
doEndTag
in interfaceTag
- Overrides:
doEndTag
in classTagSupport
- Throws:
JspException
- See Also:
-
release
public void release()- Specified by:
release
in interfaceTag
- Overrides:
release
in classTagSupport
-
resolveMessage
Resolve the specified message into a concrete message String. The returned message String should be unescaped.- Throws:
JspException
NoSuchMessageException
-
resolveArguments
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:
-
writeMessage
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
Use the current RequestContext's application context as MessageSource. -
getNoSuchMessageExceptionDescription
Return default exception message.
-