Package com.multysite.controller

Source Code of com.multysite.controller.TagServlet

package com.multysite.controller;

import java.io.IOException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

import javax.script.Bindings;
import javax.script.CompiledScript;
import javax.script.ScriptContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.appengine.api.NamespaceManager;
import com.multysite.entity.News;
import com.multysite.entity.Tag;
import com.multysite.entity.admin.ApplicationConfig;
import com.multysite.entity.admin.ApplicationTemplate;
import com.multysite.model.CategoryModel;
import com.multysite.model.TagModel;
import com.multysite.quercus.CompileScriptEngine;
import com.multysite.util.RecentViewHelper;
import com.multysite.util.Setting;

@SuppressWarnings("serial")
public class TagServlet extends HttpServlet {

  private static final Logger log = Logger.getLogger(TagServlet.class
      .getName());

  public void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws IOException {
    try {
      System.out.println("Current NS : " + NamespaceManager.get());
      req.setCharacterEncoding("utf-8");
      ApplicationTemplate template = (ApplicationTemplate) req
          .getAttribute("template");
      ApplicationConfig config = (ApplicationConfig) req
          .getAttribute("config");
      if (template != null && config != null) {
        /*
         * get detail content
         */
        String[] splitted = req.getRequestURI().split("/");
        if (splitted.length == 3) {
          String tagAlias = splitted[2];
          tagAlias = URLDecoder.decode(tagAlias, "UTF-8");
          Tag obj = TagModel.getById(tagAlias);
          if (obj != null) {
            int limit = 10;
            int page = 1;
            try {
              page = Integer.parseInt((String) req
                  .getParameter("page"));
            } catch (Exception e) {
              page = 1;
            }
            CompiledScript compiledscript = CompileScriptEngine
                .getCompileScript(config.getApplicationId(),
                    "tag", template.getTag());

            Bindings bind = compiledscript.getEngine().getBindings(
                ScriptContext.ENGINE_SCOPE);
            bind.put("title_for_layout", config.getTitle());
            bind.put("description_for_layout",
                config.getDescription());
            bind.put("keyword_for_layout", config.getKeyword());
            bind.put("css_for_layout", template.getCss());
            bind.put("js_for_layout", template.getJs());

            CategoryModel cateModel = new CategoryModel();
            cateModel.prepareAll();
            TagModel tagModel = new TagModel();
            tagModel.prepareList();

            bind.put("current_tag", obj);
            bind.put("recent_view",
                RecentViewHelper.getRecentView());
            bind.put("list_tag", tagModel.getListResult());
            bind.put("list_category", cateModel.getListResult());

            List<News> listResult = new ArrayList<News>();
            listResult = obj.recoverListNews();
            int start = (page - 1) * limit;
            double dLimit = limit;
            bind.put("total_page",
                (int) Math.ceil(listResult.size() / dLimit));
            try {
              listResult = listResult
                  .subList(start, page * limit);
            } catch (Exception e) {
              try {
                listResult = listResult.subList(start,
                    listResult.size());
              } catch (Exception e2) {

              }
            }
            bind.put("articles", listResult);
            bind.put("current_page", page);

            try {
              resp.getWriter().print(
                  (String) compiledscript.eval());
            } catch (Exception e) {
              e.printStackTrace();
              log.warning(e.toString());
            }
          } else {
            resp.sendRedirect("/");
          }
        } else {
          resp.sendRedirect("/");
        }
      } else {
        NamespaceManager.set(Setting.getGeneralNamespace());
        resp.sendRedirect("http://" + Setting.getDomain());
      }
    } catch (Exception e) {
      e.printStackTrace();
      log.warning(e.toString());
      resp.sendRedirect("/");
    }
  }

  public static void main(String[] args) {
    List<String> list = new ArrayList<String>();
    list.add("1");
    list.add("2");
    list.add("3");
    list.add("4");
    list.add("5");
    list.add("6");
    list.add("7");
    list.add("8");
    list.add("9");
    list.add("10");
    list.add("11");
    int limit = 10;
    double dLimit = limit;
    System.out.println((int) Math.ceil(list.size() / dLimit));
  }
}
TOP

Related Classes of com.multysite.controller.TagServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.