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.



