|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
ObjectTagSupport
BodyTagSupport
AbstractClassicTag
DeclareBundle
public class DeclareBundle
Declares a java.util.ResourceBundle as a source for displaying internationalized
messages. The declared resource bundle is accessible using the ${bundle...} data binding context.
The required name attribute specifies the identifier used to refer to the ResourceBundle in an expression.
For example:
<netui-data:declareBundle name="someMessages" bundlePath="com/foobar/resources/WebAppMessages"/>
This tag declares a bundle that is referenced in a data binding expression as ${bundle.someMessages}.
The bundle that is referenced depends on the
java.util.Locale
specified. The resource bundle properties files that are accessed are located
in the package com/foobar/resources with the root properties file
name of WebAppMessages. The naming conventions for properties can
be found in Sun's Java documentation at
ResourceBundle.getBundle(String,Locale, ClassLoader) .
These files must be located in a classpath that is available to the web application. Often, they are stored in
WEB-INF/classes. If the properties file contains a key called helloWorld, then the
expression ${bundle.someMessages.helloWorld} would look-up the message
matching the Locale specified on the tag. Bundle binding expressions can be
used in any data bindable <netui...> tag attribute.
It is possible to have keys that contain multiple words separated by spaces, commas, or periods. If this is the
case, then you must use slightly differente syntax to reference those keys in your data binding statement. The
following list illustrates three ways to access the key My helloWorld from the
someMessages property file:
<netui:span value="${bundle.someMessages['My helloWorld']}"/><netui:span value='${bundle.someMessages["My helloWorld"]}'/><netui:span value="${bundle.someMessages[\"My helloWorld\"]}"/>
Note: the name default is a bundle identifier that is reserved for use by the
<netui-data:declareBundle> tag. If this value is used for the name attribute on a
<netui-data:declareBundle> tag, an error will be reported in the page. The default bundle
is reserved for use when accessing internationalized messages from the "current" Struts module's
default properties file.
This tag provides a high level of customizability for rendering internationalized messages. Specifically, the
Locale for which to look-up messages can be specified on the <netui-data:declareBundle>
tag. By default, the Locale for the current request is used, but this Locale can be overridden by
setting the language, country, and variant tag attributes
as necessary. See java.util.Locale for more information on the possible values for these attributes.
The Locale can be overridden by setting these attributes in three combinations:
Any other combinations will throw an exception.
- country, language, variant
- country, language
- country
The <netui-data:declareBundle> tag and the Struts <i18n:getMessage> tags have the following differences.
The <netui-data:declareBundle> tag lets you customize the use of a particular resource bundle with attributes
to set the country, language, and variant explicitly, but it does not write a message out to the JSP page.
Writing out a message from this bundle is done inside of any of the other tags using the bundle
JSP EL implicit object.
<netui:span value="${bundle.messages.messageKey}"/>
The Struts <i18n:getMessage> tag is used to access a bundle and write the message out. It is roughly equivalent to doing the following:
<netui-data:declareBundle bundlePath="com/foobar/resources/messages" name="messages"/>
<netui:span value="${bundle.messages.messageKey}"/>
An advantage of using the ${bundle...} data binding context, is that it lets you write into the <span>...</span> that the <netui:span> creates, or into a <neuti:checkBox> name, etc. just like using a regular String.
| Field Summary |
|---|
| Fields inherited from class AbstractClassicTag |
|---|
DefaultNamingChain, EMPTY_STRING, NETUI_UNIQUE_CNT |
| Fields inherited from class BodyTagSupport |
|---|
bodyContent |
| Fields inherited from class TagSupport |
|---|
id, pageContext |
| Fields inherited from interface BodyTag |
|---|
EVAL_BODY_BUFFERED, EVAL_BODY_TAG |
| Fields inherited from interface IterationTag |
|---|
EVAL_BODY_AGAIN |
| Fields inherited from interface Tag |
|---|
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE |
| Constructor Summary | |
|---|---|
DeclareBundle()
|
|
| Method Summary | |
|---|---|
void |
doCatch(Throwable t)
|
int |
doEndTag()
Register a ResourceBundle that is available for the scope of this page. |
void |
doFinally()
|
int |
doStartTag()
Start the JSP rendering lifecycle for this tag; it skips its body. |
String |
getTagName()
Get the name of this tag. |
protected void |
localRelease()
Reset all of the fields of this tag. |
void |
setBundlePath(String bundlePath)
Set the path to the resource bundle's properties files. |
void |
setCountry(String country)
Set the country to use when looking-up resource bundle messages. |
void |
setLanguage(String language)
Set the language to use when looking-up resource bundle messages. |
void |
setName(String name)
The name inside of the ${bundle...} databinding context under which the properties in this bundle are available. |
void |
setVariant(String variant)
Sets a vendor / browser specific code for further parameterizign the Locale from which to look-up resource bundle messages. |
| Methods inherited from class BodyTagSupport |
|---|
doAfterBody, doInitBody, getBodyContent, getPreviousOut, release, setBodyContent |
| Methods inherited from class TagSupport |
|---|
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue |
| Methods inherited from class Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface Tag |
|---|
getParent, setPageContext, setParent |
| Constructor Detail |
|---|
public DeclareBundle()
| Method Detail |
|---|
public String getTagName()
getTagName in interface INetuiTaggetTagName in class AbstractClassicTagpublic void setLanguage(String language)
language - the two-letter lowercase ISO-639 code for a language.public void setCountry(String country)
country - the two-letter uppercase ISO-3166 code for a countrypublic void setVariant(String variant)
variant - the variantpublic void setName(String name)
default is an illegal value for this attribute and is reserved for use by this tag.
name - the name of the bundlepublic void setBundlePath(String bundlePath)
- com/foobar/resources/WebAppProperties
- com.foobar.resources.WebAppProperties
These are treated as equivalent values. The ResourceBundle class
will handle appending the .properties file type and locale information
as necessary. See ResourceBundle.getBundle(String, Locale, ClassLoader)
for the .properties file naming conventions. These files must be available in
classpath for the webapp in order to be successfully located.
bundlePath - the path to the bundle's properties files.public int doStartTag()
doStartTag in interface TagdoStartTag in class BodyTagSupportTag.SKIP_BODY
public int doEndTag()
throws JspException
doEndTag in interface TagdoEndTag in class BodyTagSupportTag.EVAL_PAGE
JspException - if error conditions are encountered during this method which can not
be reported in the page.public void doFinally()
doFinally in interface TryCatchFinally
public void doCatch(Throwable t)
throws Throwable
doCatch in interface TryCatchFinallyThrowableprotected void localRelease()
localRelease in class AbstractClassicTag
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||