<fmt:setLocale value="hi_IN" does not seem to affect the config variable javax.servlet.jsp.jstl.fmt.locale <%=pageContext.getAttribute("javax.servlet.jsp.jstl.fmt.locale ")%> returns a null
Not a bug. If you are using PageContext.getAttribute() (directly) to get the value of a configuration variable, you must append the name of the scope to the name of the configuration variable. Applied to your example, use this: <%= pageContext.getAttribute("javax.servlet.jsp.jstl.fmt.locale.page") %> Alternatively, you may use <%= javax.servlet.jsp.jstl.core.Config.find(pageContext, "javax.servlet.jsp.jstl.fmt.locale") %> which appends the scope automatically.