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

📄 i18ns.java

📁 非常接近C/S操作方式的Java Ajax框架-ZK 用ZK框架使你的B/S应用程序更漂亮更易操作。 官网:www.zkoss.org
💻 JAVA
字号:
/* I18Ns.java{{IS_NOTE	Purpose:			Description:			History:		Thu Jul 13 16:53:47     2006, Created by tomyeh}}IS_NOTECopyright (C) 2006 Potix Corporation. All Rights Reserved.{{IS_RIGHT}}IS_RIGHT*/package org.zkoss.zk.ui.http;import java.util.Locale;import java.util.TimeZone;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import org.zkoss.util.TimeZones;import org.zkoss.util.logging.Log;import org.zkoss.web.Attributes;import org.zkoss.web.servlet.Charsets;import org.zkoss.zk.ui.Session;import org.zkoss.zk.ui.util.Configuration;import org.zkoss.zk.ui.sys.LocaleProvider;import org.zkoss.zk.ui.sys.TimeZoneProvider;import org.zkoss.zk.ui.sys.SessionsCtrl;/** * Internatization utilities. * * <p>Typical use: * <pre><code> Object old = I18Ns.setup(session, request, response); try {   ... } finally {   I18Ns.cleanup(old); } *</code></pre> * @author tomyeh */public class I18Ns {	private static final Log log = Log.lookup(I18Ns.class);	/** Sets up the internationalization attributes, inclluding locale	 * and time zone.	 * @param charset the response's charset. If null or empty,	 * response.setCharacterEncoding won't be called, i.e., the container's	 * default is used.	 */	public static final Object setup(Session sess,	ServletRequest request, ServletResponse response, String charset) {		final Object[] old;		if (Charsets.hasSetup(request)) {			old = null;		} else {			//1. setup locale			final Configuration config = sess.getWebApp().getConfiguration();			Class cls = config.getLocaleProviderClass();			if (cls != null) {				try {					final Locale locale =						((LocaleProvider)cls.newInstance()).getLocale(sess);					if (locale != null)						sess.setAttribute(Attributes.PREFERRED_LOCALE, locale);						//so Charsets will use this locale				} catch (Throwable ex) {					log.warning("Ignored: unable to invoke the locale provider: "+cls, ex);				}			}			final Object ol = Charsets.setup(request, response, charset);			//2. setup time zone			TimeZone tzone = null;			cls = config.getTimeZoneProviderClass();			if (cls != null) {				try {					tzone = ((TimeZoneProvider)cls.newInstance()).getTimeZone(sess);				} catch (Throwable ex) {					log.warning("Ignored: unable to invoke the locale provider: "+cls, ex);				}			}			if (tzone == null)				tzone = (TimeZone)sess.getAttribute(Attributes.PREFERRED_TIME_ZONE);			final Object otz = TimeZones.setThreadLocal(tzone);			old = new Object[] {ol, otz};		}		SessionsCtrl.setCurrent(sess);		return old;	}	/* Cleans up the inernationalization attributes.	 *	 * @param old which must be the value returned by setup.	 */	public static final void cleanup(ServletRequest request, Object old) {		SessionsCtrl.setCurrent(null);		if (old != null) {			final Object[] op = (Object[])old;			TimeZones.setThreadLocal((TimeZone)op[1]);			Charsets.cleanup(request, op[0]);		}	}}

⌨️ 快捷键说明

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