📄 topicaction.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 + -