2. Using the Tutorial Examples 3. Getting Started with Web Applications 5. JavaServer Pages Technology 7. JavaServer Pages Standard Tag Library Flow Control Tags in the Core Tag Library Further Information about JSTL 10. JavaServer Faces Technology 11. Using JavaServer Faces Technology in JSP Pages 12. Developing with JavaServer Faces Technology 13. Creating Custom UI Components 14. Configuring JavaServer Faces Applications 15. Internationalizing and Localizing Web Applications 16. Building Web Services with JAX-WS 17. Binding between XML Schema and Java Classes 19. SOAP with Attachments API for Java 21. Getting Started with Enterprise Beans 23. A Message-Driven Bean Example 24. Introduction to the Java Persistence API 25. Persistence in the Web Tier 26. Persistence in the EJB Tier 27. The Java Persistence Query Language 28. Introduction to Security in the Java EE Platform 29. Securing Java EE Applications 31. The Java Message Service API 32. Java EE Examples Using the JMS API 36. The Coffee Break Application | Internationalization Tag LibraryChapter 15, Internationalizing and Localizing Web Applications covers how to design web applications so that they conform to thelanguage and formatting conventions of client locales. This section describes tags that supportthe 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 timesin a locale-sensitive or customized manner.Table 7-6 lists the tags. Table 7-6 Internationalization Tags
JSTL I18N tags use a localization context to localize their data. Alocalization contextcontains a locale and a resource bundle instance. To specify the localization context atdeployment time, you define the context parameterjavax.servlet.jsp.jstl.fmt.localizationContext, whose value can beajavax.servlet.jsp.jstl.fmt.LocalizationContext or aString. AString context parameter is interpreted as aresource bundle base name. For the Duke’s Bookstore application, the context parameter istheStringmessages.BookstoreMessages. When a request is received, JSTL automatically sets the localebased on the value retrieved from the request header and chooses the correctresource bundle using the base name specified in the context parameter. Setting the LocaleThesetLocale tag is used to override the client-specified locale for a page.TherequestEncoding tag is used to set the request’s character encoding, in orderto be able to correctly decode request parameter values whose encoding is differentfromISO-8859-1. Messaging TagsBy default, the capability to sense the browser locale setting is enabled inJSTL. This means that the client determines (through its browser setting) which localeto use, and allows page authors to cater to the language preferences oftheir clients. ThesetBundle andbundle TagsYou can set the resource bundle at runtime with the JSTLfmt:setBundle andfmt:bundle tags.fmt:setBundle is used to set the localization context in a variableor configuration variable for a specified scope.fmt:bundle is used to set theresource bundle for a given tag body. Themessage TagThemessage tag is used to output localized strings. The following tagfromtut-install/javaeetutorial5/examples/web/bookstore4/web/books/bookcatalog.jsp is used to output a string inviting customers to choosea book from the catalog. <h3><fmt:message key="Choose"/></h3> Theparam subtag provides a single argument (for parametric replacement) to the compoundmessage or pattern in its parentmessage tag. Oneparam tag must be specifiedfor each variable in the compound message or pattern. Parametric replacement takes placein the order of theparam tags. Formatting TagsJSTL provides a set of tags for parsing and formatting locale-sensitive numbers anddates. TheformatNumber tag is used to output localized numbers. The following tag fromtut-install/javaeetutorial5/examples/web/bookstore4/web/books/bookshowcart.jsp is used to display a localized price for a book. <fmt:formatNumber value="${book.price}" type="currency"/>Note that because the price is maintained in the database in dollars, thelocalization is somewhat simplistic, because theformatNumber tag 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) arealso available. ThetimeZone tag establishes the time zone (specified with thevalueattribute) to be used by any nestedformatDate tags. Intut-install/javaeetutorial5/examples/web/bookstore4/web/books/bookreceipt.jsp, a “pretend” ship date is created and then formatted with theformatDate tag: <jsp:useBean /><jsp:setProperty name="now" property="time" value="${now.time + 432000000}" /><fmt:message key="ShipDate"/> <fmt:formatDate value="${now}" type="date" dateStyle="full"/>.Copyright © 2010, Oracle and/or its affiliates. All rights reserved.Legal Notices |