|
Download
FAQ History |
|
API
Search Feedback |
Internationalization Tag Library
Chapter 22 covers how to design Web applications so that they conform to the language and formatting conventions of client locales. This section describes tags that support the internationalization of JSP pages.
JSTL defines tags for setting the locale for a page, creating locale-sensitive messages, and formatting and parsing data elements such as numbers, currencies, dates, and times in a locale-sensitive or customized manner. Table 14-7 lists the tags.
JSTL i18n tags use a localization context to localize their data. A localization context contains a locale and a resource bundle instance. To specify the localization context at deployment time, you define the context parameter
javax.servlet.jsp.jstl.fmt.localizationContext, whose value can be ajavax.servlet.jsp.jstl.fmt.LocalizationContextor aString. AStringcontext parameter is interpreted as the name of a resource bundle basename. For the Duke's Bookstore application, the context parameter is theStringmessages.BookstoreMessages. When a request is received, JSTL automatically sets the locale based on the value retrieved from the request header and chooses the correct resource bundle using the basename specified in the context parameter.Setting the Locale
The
setLocaletag is used to override the client-specified locale for a page. TherequestEncodingtag is used to set the request's character encoding, in order to be able to correctly decode request parameter values whose encoding is different fromISO-8859-1.Messaging Tags
By default, the capability to sense the browser locale setting is enabled in JSTL. This means that the client determines (via its browser setting) which locale to use, and allows page authors to cater to the language preferences of their clients.
The setBundle and bundle Tags
You can set the resource bundle at runtime with the JSTL
fmt:setBundletag andfmt:bundletags.fmt:setBundleis used to set the localization context in a variable or configuration variable for a specified scope.fmt:bundleis used to set the resource bundle for a given tag body.The message Tag
The
messagetag is used to output localized strings. The following tag frombookcatalog.jspis used to output a string inviting customers to choose a book from the catalog.The
paramsubtag provides a single argument (for parametric replacement) to the compound message or pattern in its parentmessagetag. Oneparamtag must be specified for each variable in the compound message or pattern. Parametric replacement takes place in the order of theparamtags.Formatting Tags
JSTL provides a set of tags for parsing and formatting locale-sensitive numbers and dates.
The
formatNumbertag is used to output localized numbers. The following tag frombookshowcart.jspis used to display a localized price for a book.Note that because the price is maintained in the database in dollars, the localization is somewhat simplistic, because the
formatNumbertag is unaware of exchange rates. The tag formats currencies but does not convert them.Analogous tags for formatting dates (
formatDate) and for parsing numbers and dates (parseNumber,parseDate) are also available. ThetimeZonetag establishes the time zone (specified via thevalueattribute) to be used by any nestedformatDatetags.In
bookreceipt.jsp, a "pretend" ship date is created and then formatted with theformatDatetag:
|
Download
FAQ History |
|
API
Search Feedback |
All of the material in The J2EE(TM) 1.4 Tutorial is copyright-protected and may not be published in other works without express written permission from Sun Microsystems.