JSTL Set Locale Tag is used to change the locale configuration. SetLocal tag takes ISO Language Code and ISO Country Code as a value. By default it is set to en_US.
setLocale tag sets the specified locale provided in its attribute ‘value‘. This tag keeps the specified locale in the configuration variable of locale.
Attributes of <fmt:setLocale>:
- value : This is a required attribute and used for specifying a locale. To specify a locale code it must have made from the two-letter (lower case) language code (according to ISO-639) and/or the two-letter (upper-case) of country code (according to the ISO-3166). And if both the language and country code are used for specifying the locale the locale code must be separated by either hyphen (-) or underscore (_).
- variant : This attribute is used for specifying the browser or vendor specific variant.
- scope : This attribute specifies the scope of locale configuration variable.
Example :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>JSTL fmt:bundle Tag</title> </head> <body> <!-- Setting Locale to US --> <fmt:setLocale value="en_US"/> <fmt:formatNumber value="0.452" type="CURRENCY" minFractionDigits="3"></fmt:formatNumber> <br/> <!-- Setting Locale to UK --> <fmt:setLocale value="en_GB"/> <fmt:formatNumber value="0.452" type="CURRENCY" minFractionDigits="3"></fmt:formatNumber> <br/> <!-- Setting Locale to India --> <fmt:setLocale value="en_IN"/> <fmt:formatNumber value="0.452" type="CURRENCY" minFractionDigits="3"></fmt:formatNumber> <br/> <fmt:setLocale value="en"/> <fmt:bundle basename="myapp"> <fmt:message key="Name"/><br/> <fmt:message key="Address"/><br/> <fmt:message key="Number"/><br/> </fmt:bundle> </body> </html>
As you can see above, currency symbols is displayed based on setting of locale variable.