12.3. Using an Application-Wide Locale
Problem
You want your web application to use the same locale settings for all users, regardless of their browser's language setting. You also want the JSTL tags to honor this application-wide locale.
Solution
Use a servlet Filter
to set the
Locale
to the desired value (see Example 12-3). The Filter
ensures that
the Locale
is set for all web requests, and not
just those handled by Struts.
Example 12-3. Using a servlet filter to set the locale
package com.oreilly.strutsckbk.ch12; import java.io.IOException; import java.util.Locale; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.servlet.jsp.jstl.core.Config; import org.apache.struts.Globals; public class LocaleFilter implements Filter { // the locale code used to create the locale (e.g. en_US) private String localeCode; // indicates if the locale should always be set; // even if there is currently one in the session private boolean ignore = false; public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; localeCode = filterConfig.getInitParameter("locale"); override = Boolean.valueOf(filterConfig.getInitParameter("ignore")). booleanValue( ); } public ...
Get Jakarta Struts Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.