Java tutorial
/** * Este arquivo parte do Biblivre3. * * Biblivre3 um software livre; voc pode redistribu-lo e/ou * modific-lo dentro dos termos da Licena Pblica Geral GNU como * publicada pela Fundao do Software Livre (FSF); na verso 3 da * Licena, ou (caso queira) qualquer verso posterior. * * Este programa distribudo na esperana de que possa ser til, * mas SEM NENHUMA GARANTIA; nem mesmo a garantia implcita de * MERCANTIBILIDADE OU ADEQUAO PARA UM FIM PARTICULAR. Veja a * Licena Pblica Geral GNU para maiores detalhes. * * Voc deve ter recebido uma cpia da Licena Pblica Geral GNU junto * com este programa, Se no, veja em <http://www.gnu.org/licenses/>. * * @author Alberto Wagner <alberto@biblivre.org.br> * @author Danniel Willian <danniel@biblivre.org.br> * */ package mercury.tags; import java.util.Properties; import javax.servlet.jsp.tagext.*; import javax.servlet.jsp.JspException; import javax.servlet.jsp.PageContext; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; public class SetInitialLocale extends SimpleTagSupport { private static String errorJsp = "/jsp/login.jsp"; private static String defaultLanguage = "pt_BR"; protected Logger log = Logger.getLogger(this.getClass()); @Override public void doTag() throws JspException { try { PageContext pageContext = (PageContext) getJspContext(); if (pageContext.getServletContext().getAttribute("FIRST_EXECUTION") != null) { pageContext.getServletContext().removeAttribute("FIRST_EXECUTION"); pageContext.getSession().removeAttribute("LAST_VISITED_PAGE"); pageContext.getSession().removeAttribute("MESSAGE_TEXT"); pageContext.getSession().removeAttribute("MESSAGE_LEVEL"); pageContext.getSession().setAttribute("MESSAGE_TEXT", "DIALOG_VOID"); pageContext.getSession().setAttribute("MESSAGE_LEVEL", "NORMAL"); } String lastVisitedPage = (String) pageContext.getSession().getAttribute("LAST_VISITED_PAGE"); if (lastVisitedPage == null || lastVisitedPage.trim().equals("")) { lastVisitedPage = errorJsp; pageContext.getSession().setAttribute("LAST_VISITED_PAGE", lastVisitedPage); } if ((String) pageContext.getSession().getAttribute("I18N") == null) { String locale = pageContext.getRequest().getLocale().toString(); Properties languages = (Properties) pageContext.getServletContext().getAttribute("LANGUAGES"); if (StringUtils.isNotBlank(locale) && languages.containsKey(locale)) { pageContext.getSession().setAttribute("I18N", locale); } else { pageContext.getSession().setAttribute("I18N", defaultLanguage); } } } catch (Exception ex) { log.error(ex.getMessage(), ex); throw new JspException("[mercury.SetInitialLocale.doTag()] Exception: " + ex.getMessage()); } } }