Exemplo n.º 1
0
  @Override
  public void service(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {

    try {
      I18nData i18nData = getI18nData(request);

      if ((i18nData == null) || !PortalUtil.isValidResourceId(i18nData.getPath())) {

        PortalUtil.sendError(
            HttpServletResponse.SC_NOT_FOUND, new NoSuchLayoutException(), request, response);
      } else {
        request.setAttribute(WebKeys.I18N_LANGUAGE_CODE, i18nData.getLanguageCode());
        request.setAttribute(WebKeys.I18N_LANGUAGE_ID, i18nData.getLanguageId());
        request.setAttribute(WebKeys.I18N_PATH, i18nData.getI18nPath());

        Locale locale = LocaleUtil.fromLanguageId(i18nData.getLanguageId(), true, false);

        HttpSession session = request.getSession();

        session.setAttribute(Globals.LOCALE_KEY, locale);

        LanguageUtil.updateCookie(request, response, locale);

        ServletContext servletContext = getServletContext();

        RequestDispatcher requestDispatcher =
            servletContext.getRequestDispatcher(i18nData.getPath());

        requestDispatcher.forward(request, response);
      }
    } catch (Exception e) {
      _log.error(e, e);

      PortalUtil.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e, request, response);
    }
  }