Package com.aspectran.web.support.tags
Class MessageTag
- java.lang.Object
-
- javax.servlet.jsp.tagext.TagSupport
-
- com.aspectran.web.support.tags.CurrentActivityAwareTag
-
- com.aspectran.web.support.tags.HtmlEscapingAwareTag
-
- com.aspectran.web.support.tags.MessageTag
-
- All Implemented Interfaces:
ArgumentAware,java.io.Serializable,javax.servlet.jsp.tagext.IterationTag,javax.servlet.jsp.tagext.JspTag,javax.servlet.jsp.tagext.Tag,javax.servlet.jsp.tagext.TryCatchFinally
public class MessageTag extends HtmlEscapingAwareTag implements ArgumentAware
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.xmllevel. 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
argumentsattribute or by using nested<aspectran:argument>tags.Attribute Summary 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. 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). - See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDEFAULT_ARGUMENT_SEPARATORDefault separator for splitting an arguments String: a comma (",").-
Fields inherited from class com.aspectran.web.support.tags.CurrentActivityAwareTag
logger
-
-
Constructor Summary
Constructors Constructor Description MessageTag()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddArgument(java.lang.Object argument)Callback hook for nested spring:argument tags to pass their value to the parent tag.intdoEndTag()Resolves the message, escapes it if demanded, and writes it to the page (or exposes it as variable).protected intdoStartTagInternal()Called by doStartTag to perform the actual work.protected java.lang.StringgetNoSuchMessageExceptionDescription(NoSuchMessageException ex)Return default exception message.voidrelease()protected java.lang.Object[]resolveArguments(java.lang.Object arguments)Resolve the given arguments Object into an arguments array.protected java.lang.StringresolveMessage()Resolve the specified message into a concrete message String.voidsetArguments(java.lang.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).voidsetArgumentSeparator(java.lang.String argumentSeparator)Set the separator to use for splitting an arguments String.voidsetCode(java.lang.String code)Set the message code for this tag.voidsetJavaScriptEscape(boolean javaScriptEscape)Set JavaScript escaping for this tag, as boolean value.voidsetScope(java.lang.String scope)Set the scope to export the variable to.voidsetText(java.lang.String text)Set the message text for this tag.voidsetVar(java.lang.String var)Set PageContext attribute name under which to expose a variable that contains the resolved message.protected voidwriteMessage(java.lang.String msg)Write the message to the page.-
Methods inherited from class com.aspectran.web.support.tags.HtmlEscapingAwareTag
htmlEscape, isDefaultHtmlEscape, isHtmlEscape, setHtmlEscape
-
Methods inherited from class com.aspectran.web.support.tags.CurrentActivityAwareTag
doCatch, doFinally, doStartTag, getCurrentActivity
-
-
-
-
Field Detail
-
DEFAULT_ARGUMENT_SEPARATOR
public static final java.lang.String DEFAULT_ARGUMENT_SEPARATOR
Default separator for splitting an arguments String: a comma (",").- See Also:
- Constant Field Values
-
-
Method Detail
-
setCode
public void setCode(@Nullable java.lang.String code)
Set the message code for this tag.
-
setArguments
public void setArguments(@Nullable java.lang.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(java.lang.String argumentSeparator)
Set the separator to use for splitting an arguments String. Default is a comma (",").- See Also:
setArguments(java.lang.Object)
-
addArgument
public void addArgument(@Nullable java.lang.Object argument) throws javax.servlet.jsp.JspTagException
Description copied from interface:ArgumentAwareCallback hook for nested spring:argument tags to pass their value to the parent tag.- Specified by:
addArgumentin interfaceArgumentAware- Parameters:
argument- the result of the nestedspring:argumenttag- Throws:
javax.servlet.jsp.JspTagException
-
setText
public void setText(@Nullable java.lang.String text)
Set the message text for this tag.
-
setVar
public void setVar(@Nullable java.lang.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(java.lang.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(boolean javaScriptEscape)
Set JavaScript escaping for this tag, as boolean value. Default is "false".
-
doStartTagInternal
protected final int doStartTagInternal() throws java.lang.ExceptionDescription copied from class:CurrentActivityAwareTagCalled by doStartTag to perform the actual work.- Specified by:
doStartTagInternalin classCurrentActivityAwareTag- Returns:
- same as TagSupport.doStartTag
- Throws:
java.lang.Exception- any exception, any checked one other than a JspException gets wrapped in a JspException by doStartTag- See Also:
TagSupport.doStartTag()
-
doEndTag
public int doEndTag() throws javax.servlet.jsp.JspExceptionResolves the message, escapes it if demanded, and writes it to the page (or exposes it as variable).- Specified by:
doEndTagin interfacejavax.servlet.jsp.tagext.Tag- Overrides:
doEndTagin classjavax.servlet.jsp.tagext.TagSupport- Throws:
javax.servlet.jsp.JspException- See Also:
resolveMessage(),HtmlUtils.htmlEscape(String),JavaScriptUtils.javaScriptEscape(String),writeMessage(String)
-
release
public void release()
- Specified by:
releasein interfacejavax.servlet.jsp.tagext.Tag- Overrides:
releasein classjavax.servlet.jsp.tagext.TagSupport
-
resolveMessage
protected java.lang.String resolveMessage() throws javax.servlet.jsp.JspException, NoSuchMessageExceptionResolve the specified message into a concrete message String. The returned message String should be unescaped.- Throws:
javax.servlet.jsp.JspExceptionNoSuchMessageException
-
resolveArguments
@Nullable protected java.lang.Object[] resolveArguments(@Nullable java.lang.Object arguments)
Resolve the given arguments Object into an arguments array.- Parameters:
arguments- the specified arguments Object- Returns:
- the resolved arguments as array
- See Also:
setArguments(java.lang.Object)
-
writeMessage
protected void writeMessage(java.lang.String msg) throws java.io.IOExceptionWrite the message to the page.Can be overridden in subclasses, e.g. for testing purposes.
- Parameters:
msg- the message to write- Throws:
java.io.IOException- if writing failed
-
getNoSuchMessageExceptionDescription
protected java.lang.String getNoSuchMessageExceptionDescription(NoSuchMessageException ex)
Return default exception message.
-
-