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

📄 i18nwebworkadapter.java

📁 分页标签
💻 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.Iterator;import java.util.Locale;import javax.servlet.http.HttpServletRequest;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.tagext.Tag;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.displaytag.Messages;import com.opensymphony.webwork.views.jsp.TagUtils;import com.opensymphony.xwork.ActionContext;import com.opensymphony.xwork.LocaleProvider;import com.opensymphony.xwork.TextProvider;import com.opensymphony.xwork.util.OgnlValueStack;/** * Webwork implementation of a resource provider and locale resolver. * @author Richard HALLIER * @author Fabrizio Giustina * @version $Revision: 1081 $ ($Author: fgiust $) */public class I18nWebworkAdapter implements LocaleResolver, I18nResourceProvider{    /**     * prefix/suffix for missing entries.     */    public static final String UNDEFINED_KEY = "???"; //$NON-NLS-1$    /**     * logger.     */    private static Log log = LogFactory.getLog(I18nWebworkAdapter.class);    /**     * @see LocaleResolver#resolveLocale(HttpServletRequest)     */    public Locale resolveLocale(HttpServletRequest request)    {        Locale result = null;        OgnlValueStack stack = ActionContext.getContext().getValueStack();        Iterator iterator = stack.getRoot().iterator();        while (iterator.hasNext())        {            Object o = iterator.next();            if (o instanceof LocaleProvider)            {                LocaleProvider lp = (LocaleProvider) o;                result = lp.getLocale();                break;            }        }        if (result == null)        {            log.debug("Missing LocalProvider actions, init locale to default");            result = Locale.getDefault();        }        return result;    }    /**     * @see I18nResourceProvider#getResource(String, String, Tag, PageContext)     */    public String getResource(String resourceKey, String defaultValue, Tag tag, PageContext pageContext)    {        // if resourceKey isn't defined either, use defaultValue        String key = (resourceKey != null) ? resourceKey : defaultValue;        String message = null;        OgnlValueStack stack = TagUtils.getStack(pageContext);        Iterator iterator = stack.getRoot().iterator();        while (iterator.hasNext())        {            Object o = iterator.next();            if (o instanceof TextProvider)            {                TextProvider tp = (TextProvider) o;                message = tp.getText(key, null, null);                break;            }        }        // if user explicitely added a titleKey we guess this is an error        if (message == null && resourceKey != null)        {            log.debug(Messages.getString("Localization.missingkey", resourceKey)); //$NON-NLS-1$            message = UNDEFINED_KEY + resourceKey + UNDEFINED_KEY;        }        return message;    }}

⌨️ 快捷键说明

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