NewTopicSubmitAction.java
上传用户:jishiqi_cj
上传日期:2022-08-08
资源大小:24765k
文件大小:4k
- package StudyBbs;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.struts.action.Action;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.action.ActionForward;
- import org.apache.struts.action.ActionMapping;
- import org.apache.struts.action.ActionMessage;
- import org.apache.struts.action.ActionMessages;
- import org.apache.struts.validator.DynaValidatorForm;
- import javax.servlet.ServletContext;
- import javax.sql.DataSource;
- import java.sql.Connection;
- import java.util.Vector;
- public final class NewTopicSubmitAction extends Action{
- public ActionForward execute(
- ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response) throws Exception {
-
- //避免重复提交
- if (!isTokenValid(request)){
- saveToken(request);
- return (new ActionForward(mapping.getInput()));
- }
- resetToken(request);
- DynaValidatorForm newform = (DynaValidatorForm) form;
- String title = (String)newform.get("title");
- String content = (String)newform.get("content");
-
- ServletContext context = servlet.getServletContext();
- DataSource dataSource = (DataSource)context.getAttribute(Constants.DATASOURCE_KEY);
-
- DB db = new DB(dataSource);
- HttpSession session = request.getSession(true);
-
- String talkType=(String)session.getAttribute(Constants.TALK_TYPE_KEY);
- String username=(String)session.getAttribute(Constants.USERNAME_KEY);
- Vector topics = new Vector();
-
-
-
- String PageForward;
- ActionMessages errors = new ActionMessages();
-
- if (talkType.equals("topic")) { //插入新主题
- Integer sortid = (Integer)session.getAttribute(Constants.CUR_SORTID_KEY);
- Topic topic = new Topic();
- topic.setTitle(title);
- topic.setContent(content);
- topic.setSortid(sortid.intValue());
- topic.setOwner(username);
- if (topic.Insert(db)) {
-
- TopicDisp topicdisp = new TopicDisp(); //重新显示主题
- topicdisp.setSortid(sortid.intValue());
- topics = topicdisp.search(db,0);
- session.setAttribute(Constants.TOPIC_LIST_KEY,topics);
- PageForward="toTopic";//主题页面
- }
- else{
- errors.add(ActionMessages.GLOBAL_MESSAGE,
- new ActionMessage("errors.insertFail"));
- if (!errors.isEmpty()) {
- saveErrors(request, errors);
- }
- PageForward="toWrong";
- }
- }
- else{ //新回复
- Integer topicid = (Integer)session.getAttribute(Constants.CUR_TOPICID_KEY);
- Respond respon = new Respond();
- respon.setTitle(title);
- respon.setContent(content);
- respon.setTopicid(topicid.intValue());
- respon.setOwner(username);
-
- if (respon.Insert(db)) {
-
- respon.setTopicid(topicid.intValue());
- topics = respon.search(db,topicid.intValue());
- session.setAttribute(Constants.RESPONS_LIST_KEY,topics);
-
- PageForward="toBbsContent";//回复页面
- }
- else{
- errors.add(ActionMessages.GLOBAL_MESSAGE,
- new ActionMessage("errors.insertFail"));
- if (!errors.isEmpty()) {
- saveErrors(request, errors);
- }
- PageForward="toWrong";
- }
- }
-
- db.close();
- return (mapping.findForward(PageForward));
- }
- }