The JavaTM Web Services Tutorial
Home
TOC
PREV TOP NEXT

Internationalization Tags

In Internationalizing and Localizing Web Applications we discussed the how to adapt Web applications to the language and formatting conventions of client locales. This section describes tags that support the internationalization of JSP pages.

JSTL defines two sets of tags:

Messaging Tags

By default, browser-sensing capabilities for locales are enabled. This means that the client determines (via its browser settings) which locale to use, and allows page authors to cater to the language preferences of their clients.

The locale tag is used to override the client-specified locale for a page.

Specifying a Bundle

You use the bundle tag to specify a resource bundle for a page.

To define a resource bundle for a Web application you specify the context parameter javax.servlet.jsp.jstl.i18n.basename in the Web application deployment descriptor. Here is the declaration from the Duke's Bookstore descriptor:

<context-param>	
   <param-name>	
      javax.servlet.jsp.jstl.i18n.basename	
   </param-name>	
   <param-value>messages.BookstoreMessages</param-value>	
</context-param>   
 

Message Tags

The message tag is used to output localized strings. The following tag from catalog.jsp:

<h3><fmt:message key="Choose"/></h3>
 

is used to output a string inviting customers to choose a book from the catalog.

The messageFormat tag performs parametric replacement on a given pattern string, using the runtime's default locale. The pattern string may be specified via the value attribute; if missing, it is read from the tag's body content.

The messageArg tag provides a single argument (for parametric replacement) to the compound message or pattern in its parent message or messageFormat tag, respectively. One messageArg tag must be specified for each variable in the compound message or pattern. Parametric replacement takes place in the order of the messageArg tags.

Formatting Tags

The formatNumber tag is used to output localized numbers. The following tag from showcart.jsp:

<fmt:formatNumber value="$book.price" type="currency"/>
 

is used to display a localized price for a book. Note that since the price is maintained in the database in dollars, the localization is somewhat phony, because the the formatNumber tag is unaware of exchange rates. The tag formats currencies but does not convert them. Analogous tags for formatting dates (formatDate), and parsing numbers and dates (parseNumber, parseDate) are also available. The timeZone tag establishes the time zone (specified via the value attribute) to be used by any nested formatDate tags.

Home
TOC
PREV TOP NEXT