NetUI Tag Library Documentation (Version 1.0.1)

netui-data
netui-data:declareBundle Tag

Declares a ResourceBundle as a source for displaying internationalized messages.

Syntax

<netui-data:declareBundle
    bundlePath="string_bundlePath"
    [country="string_country"]
    [language="string_language"]
    name="string_name"
    [variant="string_variant"] >
    ... JSP content ...
</netui-data:declareBundle>

Description

Declares a 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 different 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:

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.

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.

Attributes
bundlePath
Required: Yes  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: No

Set the path to the resource bundle's properties files. This can be a slash or dot delimited classpath. Valid values should appear as:
  • 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 java.util.ResourceBundle.getBundlegetBundle(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.

country
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

Set the country to use when looking-up resource bundle messages. The two-letter uppercase ISO-3166 country / region code for the Locale from which to look-up resource bundle messages. This value is used to further specify the name of the .properties file from which message keys will be read.
language
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

Set the language to use when looking-up resource bundle messages. The two-letter lowercase ISO-639 language code for the Locale from which to look-up resource bundle messages. This value is used to further specify the name of the .properties file from which message keys will be read.
name
Required: Yes  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: No

The name inside of the ${bundle...} databinding context under which the properties in this bundle are available. The identifier default is an illegal value for this attribute and is reserved for use by this tag.
variant
Required: No  |   Type: String  |   Supports runtime evaluation / JSP Expression Language: Yes

Sets a vendor / browser specific code for further parameterizign the Locale from which to look-up resource bundle messages.


Tag Information
Tag Classorg.apache.beehive.netui.tags.databinding.bundle.DeclareBundle
TagExtraInfo ClassNone
Body ContentJSP
Display NameNone