localerequestwrapper.java

来自「基于Maven的质量保证自动化环境配置和演示程序」· Java 代码 · 共 64 行

JAVA
64
字号
package com.cib.webapp.filter;import java.util.Collections;import java.util.Enumeration;import java.util.List;import java.util.Locale;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * HttpRequestWrapper overriding methods getLocale(), getLocales() to include * the user's preferred locale. */public class LocaleRequestWrapper extends HttpServletRequestWrapper {    private final transient Log log = LogFactory.getLog(LocaleRequestWrapper.class);    private final Locale preferredLocale;    /**     * Sets preferred local to user's locale     * @param decorated the current decorated request     * @param userLocale the user's locale     */    public LocaleRequestWrapper(final HttpServletRequest decorated, final Locale userLocale) {        super(decorated);        preferredLocale = userLocale;        if (null == preferredLocale) {            log.error("preferred locale = null, it is an unexpected value!");        }    }    /**     * {@inheritDoc}     */    public Locale getLocale() {        if (null != preferredLocale) {            return preferredLocale;        } else {            return super.getLocale();        }    }    /**     * {@inheritDoc}     */    @SuppressWarnings("unchecked")    public Enumeration<Locale> getLocales() {        if (null != preferredLocale) {            List<Locale> l = Collections.list(super.getLocales());            if (l.contains(preferredLocale)) {                l.remove(preferredLocale);            }            l.add(0, preferredLocale);            return Collections.enumeration(l);        } else {            return super.getLocales();        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?