⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i18nstrutsadapter.java

📁 struts+spring+hibernate自创框架
💻 JAVA
字号:
/** * Licensed under the Artistic License; you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * *      http://displaytag.sourceforge.net/license.html * * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */package org.displaytag.localization;import java.util.Locale;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.tagext.Tag;import org.apache.struts.Globals;import org.apache.struts.config.ModuleConfig;import org.apache.struts.util.MessageResources;/** * Struts implementation of a resource provider and locale resolver. Uses Struts * <code>RequestUtils.getUserLocale()</code> and <code>TagUtils.message()</code> for the lookup. * @author Fabrizio Giustina * @version $Revision: 1081 $ ($Author: fgiust $) */public class I18nStrutsAdapter implements I18nResourceProvider, LocaleResolver{    /**     * prefix/suffix for missing entries.     */    public static final String UNDEFINED_KEY = "???"; //$NON-NLS-1$    /**     * @see LocaleResolver#resolveLocale(HttpServletRequest)     */    public Locale resolveLocale(HttpServletRequest request)    {        Locale userLocale = null;        HttpSession session = request.getSession(false);        // Only check session if sessions are enabled        if (session != null)        {            userLocale = (Locale) session.getAttribute(Globals.LOCALE_KEY);        }        if (userLocale == null)        {            // Returns Locale based on Accept-Language header or the server default            userLocale = request.getLocale();        }        return userLocale;    }    /**     * @see I18nResourceProvider#getResource(String, String, Tag, PageContext)     */    public String getResource(String resourceKey, String defaultValue, Tag tag, PageContext pageContext)    {        // if titleKey isn't defined either, use property        String key = (resourceKey != null) ? resourceKey : defaultValue;        // retrieve MessageResources. Don't use TagUtils to mantain Struts 1.1 compatibility        MessageResources resources = (MessageResources) pageContext.getAttribute(            Globals.MESSAGES_KEY,            PageContext.REQUEST_SCOPE);        if (resources == null)        {            ModuleConfig moduleConfig = (ModuleConfig) pageContext.getRequest().getAttribute(Globals.MODULE_KEY);            if (moduleConfig == null)            {                moduleConfig = (ModuleConfig) pageContext.getServletContext().getAttribute(Globals.MODULE_KEY);                pageContext.getRequest().setAttribute(Globals.MODULE_KEY, moduleConfig);            }            resources = (MessageResources) pageContext.getAttribute(                Globals.MESSAGES_KEY + moduleConfig.getPrefix(),                PageContext.APPLICATION_SCOPE);        }        if (resources == null)        {            resources = (MessageResources) pageContext                .getAttribute(Globals.MESSAGES_KEY, PageContext.APPLICATION_SCOPE);        }        String title = null;        if (resources != null)        {            Locale userLocale = resolveLocale((HttpServletRequest) pageContext.getRequest());            title = resources.getMessage(userLocale, key);        }        // if user explicitely added a titleKey we guess this is an error        if (title == null && resourceKey != null)        {            title = UNDEFINED_KEY + resourceKey + UNDEFINED_KEY;        }        return title;    }}

⌨️ 快捷键说明

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