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

📄 languageservlet.java

📁 这个weblogging 设计得比较精巧
💻 JAVA
字号:
/* * Filename: LanguageServlet.java *  * Created on 02-May-04 */package org.roller.presentation.velocity;import java.util.Locale;import javax.servlet.ServletConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.struts.Globals;import org.apache.velocity.Template;import org.apache.velocity.context.Context;import org.roller.presentation.LanguageUtil;import org.roller.presentation.RollerContext;/** * Changes the language of the current Locale to the language specified * by the user. The new language must be supported by Roller.   *  * And new supported languages to the web.servlet-init-param value. Make sure you add language-only * values at the end of a chain. So "en_US,en" instead of "en,en_US". And no spaces. *  * @web.servlet name="LanguageServlet" load-on-startup="10" * @web.servlet-init-param name="org.roller.presentation.supported.languages" value="en,nl,zh_cn,zh_tw,vi" *   * @web.servlet-mapping url-pattern="/language/*" *  * @author <a href="mailto:molen@mail.com">Jaap van der Molen</a> * @version $Revision: 1.8 $ */public class LanguageServlet extends BasePageServlet{    static final long serialVersionUID = -6548723098429557183L;    	/**	 * Logger	 */	private static Log mLogger =		LogFactory.getFactory().getInstance(LanguageServlet.class);	/**	 * @see org.roller.presentation.velocity.BasePageServlet#init(javax.servlet.ServletConfig)	 */	public void init(ServletConfig config) throws ServletException	{		super.init(config);		// load supported languages		ServletContext ctx = config.getServletContext();		String supportedLanguages =			config.getInitParameter(LanguageUtil.SUPPORTED_LANGUAGES);		if (supportedLanguages != null			&& supportedLanguages.trim().length() > 0)		{			// extract langauges			ctx.setAttribute(				LanguageUtil.SUPPORTED_LANGUAGES,				LanguageUtil.extractLanguages(supportedLanguages));		}	}	/**	 * @see org.roller.presentation.velocity.BasePageServlet#handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.velocity.context.Context)	 */	public Template handleRequest(		HttpServletRequest request,		HttpServletResponse response,		Context ctx) throws Exception	{		mLogger.debug("Processing language change...");        ServletContext servletContext = RollerContext.getServletContext();        		Locale[] supportedLanguages =			LanguageUtil.getSupportedLanguages(servletContext);		if (supportedLanguages == null || supportedLanguages.length == 0)		{			// add error message			ctx.put("languageError", "Unable to switch language: no supported languages defined.");			// proceed with request serving			return super.handleRequest(request, response, ctx);		}		String newLang = request.getParameter("language");		mLogger.debug("New language in Request: " + newLang);		if (newLang == null || newLang.length() == 0) {			// add error message			ctx.put("languageError", "Unable to switch language: no new language specified.");			// proceed with request serving			return super.handleRequest(request, response, ctx);		}				Locale newLocale = LanguageUtil.createLocale(newLang);		// verify if new language is supported		if (!LanguageUtil.isSupported(newLocale, servletContext)) {			// add error message			ctx.put("languageError", "Unable to switch language: new language '"+newLang+"' is not supported.");			// proceed with request serving			return super.handleRequest(request, response, ctx);		}		// by now, all should be fine: change Locale		HttpSession session = request.getSession();		session.setAttribute(Globals.LOCALE_KEY, newLocale);		mLogger.debug("Changed language to: " + newLocale);		// proceed with request serving		return super.handleRequest(request, response, ctx);	}}

⌨️ 快捷键说明

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