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

📄 topicaction.java

📁 基于struct结构的jsp
💻 JAVA
字号:
package com.ntsky.bbs.action;

import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger ;

import java.util.*;
import com.ntsky.bbs.service.User;
import com.ntsky.bbs.service.db.DBUser;
import com.ntsky.bbs.service.Manager;
import com.ntsky.bbs.service.db.DBManager;
import com.ntsky.bbs.service.BoardUtil;
import com.ntsky.bbs.action.Constant;
import com.ntsky.bbs.form.TopicActionForm;
import com.ntsky.bbs.service.TopicFactory;
import com.ntsky.bbs.service.TopicUtil;
import com.ntsky.bbs.service.Topic;
import com.ntsky.util.CodeFilter;
import com.ntsky.bbs.service.BoardFilter;
import com.ntsky.bbs.service.UserFilter;
import com.ntsky.bbs.service.UserUtil;

/**
 * <p>Title: Ntsky OpenSource BBS</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: WWW.FM880.COM</p>
 * @author 姚君林
 * @version 1.0
 */

public class TopicAction extends Action {
    private final static Logger logger = Logger.getLogger(TopicAction.class);
    public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception{
        /**@todo: complete the business logic here, this is just a skeleton.*/
        HttpSession session = httpServletRequest.getSession();
        logger.info("添加主题信息开始......");
        //获取帖子事件
        String action = httpServletRequest.getParameter("action");

        logger.info("action  =  " + action);
        TopicActionForm topicActionForm = new TopicActionForm();
        httpServletRequest.setAttribute(actionMapping.getAttribute(), topicActionForm);

        //权限控制
        Map userMap = UserFilter.getInstance().filterUser(session,httpServletRequest);
        BoardFilter boardFilter = BoardFilter.getInstance();
        String rightStr = boardFilter.filterBoard(httpServletRequest,httpServletResponse,session);
        session.setAttribute("rightStr",rightStr);

        String topicId = httpServletRequest.getParameter("topicId");
        logger.info("主题编号为 : " + topicId);
        Topic topic = null;
        if(topicId != null){
            topic = TopicUtil.listTopic(Integer.parseInt(topicId));
        }

        /**
         * 设置URI
         */
        String boaId = httpServletRequest.getParameter("boaId");
        User user = (User)session.getAttribute(Constant.USER_KEY);
        /**
         * 设置URI
         */
        if(user == null){
            String uri = httpServletRequest.getRequestURI();
            logger.info("uri = " + uri);
            if(boaId != null){
                //添加
                session.setAttribute("uri",
                                     uri + "?action=" + action + "&boaId=" +
                                     boaId);
            }
            else{
                //修改
                if((Constant.EDIT).equals(action)){
                    session.setAttribute("uri",
                                         "topic.html?action=" + action +
                                         "&topicId=" +
                                         topic.getTopicId());
                }
                else{
                    session.setAttribute("uri",
                                        "showTopic.html?topicId=" +
                                        topic.getTopicId());
                }
            }
        }
        //检测用户是否登陆
        boardFilter.checkUserLogon(httpServletResponse,httpServletRequest,user);

        TopicFactory topicFactory = TopicFactory.getInstance();
        /**
         * 改变主题的状态
         */
        if("state".equals(action)){
            if(UserUtil.isManagerUser(topic.getTopicBoaId(),user)){
                String state = httpServletRequest.getParameter("state");
                topicFactory.upTopicState(Integer.parseInt(topicId), state,topic.getTopicAuthor());
                httpServletRequest.setAttribute("action", "upTopicState");
                logger.info(String.valueOf(topic.getTopicBoaId()));
                httpServletRequest.setAttribute("boaId",
                                                String.valueOf(topic.getTopicBoaId()));
                logger.info("成功更新该主题的状态");
                return actionMapping.findForward("success");
            }
            else{
                String string = "<script>alert(\"Sorry!您无权限改变该主题的状态\")</script>";
                httpServletRequest.setAttribute("action", "upTopicStateError");
                httpServletRequest.setAttribute("topicId",topicId);
                httpServletRequest.setAttribute("changeStateError",string);
                return actionMapping.findForward("success");
            }
        }

        topicActionForm.setAction(action);
        /**
         * 添加主题
         */
        if((Constant.CREATE).equals(action)){
            logger.info("添加主题页面......");
            topicActionForm.setTopicMood("1");
            topicActionForm.setTopicBoaId(Integer.parseInt(boaId));
            topicActionForm.setTopicAuthor(user.getUsrName());
            return actionMapping.findForward("continue");
        }

        /**
         * 修改用户自己的主题
         */
        if((Constant.EDIT).equals(action)){
            //主题编号
            httpServletRequest.setAttribute("boaId", String.valueOf(topic.getTopicId()));
            //如果取得的sessionUser和发表的作者一样就修改否则跳原来的页面
            if((topic.getTopicAuthor()).equals(user.getUsrName())){
                //读取该用户原先发表的信息
                topicActionForm.setTopicId(topic.getTopicId());
                String topicTitle = topic.getTopicTitle();
                int titleLength = topicTitle.length();
                topicActionForm.setTopicTitle(topicTitle.substring(1,titleLength));
                topicActionForm.setTopicMood(topicTitle.substring(0,1));
                topicActionForm.setTopicContent(CodeFilter.unEncode(topic.getTopicContent()));
                topicActionForm.setTopicAuthor(topic.getTopicAuthor());
                topicActionForm.setTopicBoaId(topic.getTopicBoaId());
            }
            else{
                String errorStr = "<script>alert(\"Sorry!不好意思,您不是无权修改该帖!\")</script>";
                httpServletRequest.setAttribute("action", "upTopicError");
                httpServletRequest.setAttribute("topicId",topicId);
                httpServletRequest.setAttribute("upTopicError",errorStr);
                return actionMapping.findForward("success");
            }
            logger.info("成功返回信息..............");
            return actionMapping.findForward("continue");
        }

        /**
         * 删除主题
         */
        if((Constant.DELETE).equals(action)){
            //本版斑竹,大斑竹,区长可以删除信息
           // List list = BoardUtil.masterArray(topic.getTopicBoaId());
            //如果该用户是管理员,执行删除
            /*logger.info("删除主题开始");
            logger.info("usrName = " + user.getUsrName());
            logger.info("包含用户有 : " + list.contains(user.getUsrName()));
            Manager manager = new DBManager();
            String usrName = user.getUsrName();*/

            if(UserUtil.isManagerUser(topic.getTopicBoaId(),user)){
                topicFactory.delTopic(Integer.parseInt(topicId));
                String string = "<script>alert(\"删除主题成功!\")</script>";
                httpServletRequest.setAttribute("action","delTopic");
                httpServletRequest.setAttribute("boaId", String.valueOf(topic.getTopicBoaId()));
                httpServletRequest.setAttribute("deleteOk",string);
                logger.info("删除成功");
                return actionMapping.findForward("success");
            }
            else{
                logger.info("删除失败");
                String string = "<script>alert(\"您不是管理员,不能删除主题!\")</script>";
                httpServletRequest.setAttribute("action","delTopicError");
                httpServletRequest.setAttribute("deleteError",string);
                httpServletRequest.setAttribute("topicId",topicId);
                logger.info("删除不成功返回到页面");
                return actionMapping.findForward("success");
            }
        }
        return actionMapping.findForward("success");
        //throw new java.lang.UnsupactionMappingportedOperationException("Method perform() not yet implemented.");
    }
}

⌨️ 快捷键说明

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