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

📄 articleaction.java

📁 关于 Jaoso新闻文章发布系统 --- --- --- --- --- --- --- --- --- --- --- --- --- -- 版本信息:Jaoso新闻文章发布系统 0.9.1b
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package jaoso.news.web.action;

import jaoso.count.domain.Count;

import jaoso.count.service.CountService;

import jaoso.count.web.listener.CountListener;

import jaoso.framework.domain.Account;

import jaoso.framework.service.SecurityService;

import jaoso.framework.util.MyUtils;

import jaoso.framework.web.action.BaseAction;

import jaoso.news.domain.Article;
import jaoso.news.domain.Catalog;
import jaoso.news.domain.Critic;

import jaoso.news.exception.ArticleExistException;

import jaoso.news.service.ArticleService;
import jaoso.news.service.CatalogService;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Enumeration;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * @author 边缘孤客
 *        管理文章
 *
 */
public class ArticleAction extends BaseAction {

    //~ Static fields/initializers =============================================

    /**  DOCUMENT ME! */
    private static Log log = LogFactory.getLog(ArticleAction.class);

    //~ Instance fields ========================================================

    /**  article manager service*/
    private ArticleService articleService = (ArticleService) getServiceLocator()
                                                                 .getService("articleService");

    /**   catalog manager service */
    private CatalogService catalogService = (CatalogService) getServiceLocator()
                                                                 .getService("catalogService");

    /**  DOCUMENT ME! */
    private CountService countService = (CountService) getServiceLocator()
                                                           .getService("countService");

    /**  security manager service */
    private SecurityService securityService = (SecurityService) getServiceLocator()
                                                                    .getService("securityService");

    //~ Methods ================================================================

    /**
     * 获取头条文章(固顶)
     *
     * @param actionMapping DOCUMENT ME!
     * @param actionForm DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param response DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward getHot(final ActionMapping actionMapping,
        final ActionForm actionForm, final HttpServletRequest request,
        final HttpServletResponse response) throws ServletException {

        Article[] articles = articleService.getHotArticle();
        request.setAttribute("articles", articles);

        return (actionMapping.findForward("success"));
    }

    /**
     * 获取图片文章
     *
     * @param actionMapping DOCUMENT ME!
     * @param actionForm DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param response DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward getImage(final ActionMapping actionMapping,
        final ActionForm actionForm, final HttpServletRequest request,
        final HttpServletResponse response) throws ServletException {

        Article[] articles = articleService.getImageArticle();
        request.setAttribute("articles", articles);

        return (actionMapping.findForward("success"));
    }

    /**
     * 获取各首层目录最新更新的文章
     *
     * @param actionMapping DOCUMENT ME!
     * @param form DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param response DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward getLastUpdate(
        final ActionMapping actionMapping,
        final ActionForm form,
        final HttpServletRequest request,
        final HttpServletResponse response) throws ServletException {

        Collection rs = articleService.getLastUpdate();
        request.setAttribute("catalogs", rs);

        return (actionMapping.findForward("success"));
    }

    /**
     * DOCUMENT ME!
     *
     * @param actionMapping DOCUMENT ME!
     * @param form DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param response DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward addCritic(final ActionMapping actionMapping,
        final ActionForm form, final HttpServletRequest request,
        final HttpServletResponse response) throws ServletException {

        ActionErrors errors = new ActionErrors();
        String id = request.getParameter("id");
        Critic critic = (Critic) ((DynaActionForm) form).get("critic");
        critic.setCreateDate(new Date());
        critic.setContent(MyUtils.htmlEncode(critic.getContent()));
        articleService.addCritic(id, critic);
        removeAttribute(actionMapping, request);

        Article article = articleService.viewArticle(id);
        request.setAttribute("article", article);

        Catalog parent = article.getCatalog()
                                .getParent();

        if ((parent != null) && (parent.getCatalogId() != null)) {

            Map[] parentMap = catalogService.getParents(parent.getCatalogId());
            request.setAttribute("parents", parentMap);
        }

        return actionMapping.findForward("success");
    }

    /**
     * DOCUMENT ME!
     *
     * @param actionMapping DOCUMENT ME!
     * @param actionForm DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param response DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward approve(final ActionMapping actionMapping,
        final ActionForm actionForm, final HttpServletRequest request,
        final HttpServletResponse response) throws ServletException {

        ActionErrors errors = new ActionErrors();

        // Was this transaction cancelled?
        if (isCancelled(request)) {

            removeAttribute(actionMapping, request);

            return (actionMapping.findForward("cancel"));
        }

        Article art = null;
        String[] artIds = request.getParameterValues("artId");
        articleService.approveArticle(artIds);

        if (!errors.isEmpty()) {

            saveErrors(request, errors);
            saveToken(request);

            return (actionMapping.findForward("success"));
        } else {

            // Remove the obsolete form bean
            removeAttribute(actionMapping, request);

            return (actionMapping.findForward("success"));
        }
    }

    /**
     * get atom xml
     *
     * @param actionMapping DOCUMENT ME!
     * @param actionForm DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param response DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward atom(final ActionMapping actionMapping,
        final ActionForm actionForm, final HttpServletRequest request,
        final HttpServletResponse response) throws ServletException {

        Article[] articles = articleService.getTopNew();
        request.setAttribute("articles", articles);

        return (actionMapping.findForward("success"));
    }

    /**
     * DOCUMENT ME!
     *
     * @param actionMapping DOCUMENT ME!
     * @param actionForm DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param response DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward cancel(final ActionMapping actionMapping,
        final ActionForm actionForm, final HttpServletRequest request,
        final HttpServletResponse response) throws ServletException {

        ActionErrors errors = new ActionErrors();

        // Was this transaction cancelled?
        if (isCancelled(request)) {

            removeAttribute(actionMapping, request);

            return (actionMapping.findForward("cancel"));
        }

        Article art = null;
        String[] artIds = request.getParameterValues("artId");

        articleService.cancelArticle(artIds);

        if (!errors.isEmpty()) {

            saveErrors(request, errors);
            saveToken(request);

            return (actionMapping.findForward("success"));
        } else {

            // Remove the obsolete form bean
            removeAttribute(actionMapping, request);

            return (actionMapping.findForward("success"));
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param mapping DOCUMENT ME!
     * @param form DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param reponse DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward create(final ActionMapping mapping,
        final ActionForm form, final HttpServletRequest request,
        final HttpServletResponse reponse) throws ServletException {

        ActionErrors errors = new ActionErrors();
        Article article = (Article) ((DynaActionForm) form).get("article");
        String authorId = (String) request.getSession(false)
                                          .getAttribute("account");
        String catalogId = request.getParameter("artCatalog");

        //检查是否取消
        if (isCancelled(request)) {

            removeAttribute(mapping, request);

            return (mapping.findForward("cancel"));
        }

        //检查有无重复提交
        if (!isTokenValid(request)) {

            errors.add(ActionErrors.GLOBAL_ERROR,
                new ActionError("errors.TokenError"));
        }

        resetToken(request);

        Account author = securityService.findAccountById(authorId);
        Catalog catalog = catalogService.getCatalog(catalogId);
        article.setAuthor(author);
        article.setCatalog(catalog);

        Date date = new Date();
        article.setArtLastdate(date);

        if (MyUtils.isBlank(article.getHot())) {

            article.setHot("N");
        }

        if (MyUtils.isBlank(article.getArtImage())) {

            article.setArtImage("N");
        }

        Collection uploadFiles = new ArrayList();

        //上传的所有文件
        Enumeration eu = form.getMultipartRequestHandler()
                             .getFileElements()
                             .elements();

        while (eu.hasMoreElements()) {

            uploadFiles.add(eu.nextElement());
        }

        //如果是新建的
        if (MyUtils.isBlank(article.getArtId())) {

            article.setArtId(null);
            article.setArtCount(0);
            article.setArtStatus("OPEN");
            article.setArtCreatedate(date);

            try {

                articleService.createArticle(article, uploadFiles);
            } catch (ArticleExistException e) {

                errors.add(ActionErrors.GLOBAL_ERROR,
                    new ActionError("errors.ArticleExist"));
            }
        } else {

            try {

                articleService.updateArticle(article, uploadFiles);
            } catch (ArticleExistException e) {

                errors.add(ActionErrors.GLOBAL_ERROR,
                    new ActionError("errors.ArticleExist"));
            }
        }

        if (!errors.isEmpty()) {

            saveErrors(request, errors);
            saveToken(request);

            return (mapping.getInputForward());
        } else {

            return (mapping.findForward("success"));
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param mapping DOCUMENT ME!
     * @param form DOCUMENT ME!
     * @param request DOCUMENT ME!
     * @param reponse DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws ServletException DOCUMENT ME!
     */
    public final ActionForward listCritic(final ActionMapping mapping,
        final ActionForm form, final HttpServletRequest request,
        final HttpServletResponse reponse) throws ServletException {

        ActionErrors errors = new ActionErrors();
        Article[] articles = null;
        Collection catalogtree = null;
        Integer artCount = null;

⌨️ 快捷键说明

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