NewTopicSubmitAction.java
上传用户:jishiqi_cj
上传日期:2022-08-08
资源大小:24765k
文件大小:4k
源码类别:

Java编程

开发平台:

Java

  1. package StudyBbs;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import javax.servlet.http.HttpSession;
  5. import org.apache.struts.action.Action;
  6. import org.apache.struts.action.ActionForm;
  7. import org.apache.struts.action.ActionForward;
  8. import org.apache.struts.action.ActionMapping;
  9. import org.apache.struts.action.ActionMessage;
  10. import org.apache.struts.action.ActionMessages;
  11. import org.apache.struts.validator.DynaValidatorForm;
  12. import javax.servlet.ServletContext;
  13. import javax.sql.DataSource;
  14. import java.sql.Connection;
  15. import java.util.Vector;
  16. public final class NewTopicSubmitAction extends Action{  
  17. public ActionForward execute(
  18. ActionMapping mapping,
  19. ActionForm form,
  20. HttpServletRequest request,  
  21. HttpServletResponse response) throws Exception {
  22. //避免重复提交
  23. if (!isTokenValid(request)){
  24.   saveToken(request);
  25.   return (new ActionForward(mapping.getInput())); 
  26.   }
  27.   resetToken(request);  
  28.     DynaValidatorForm newform = (DynaValidatorForm) form;         
  29. String title = (String)newform.get("title");
  30. String content = (String)newform.get("content");
  31.     ServletContext context = servlet.getServletContext();
  32. DataSource dataSource = (DataSource)context.getAttribute(Constants.DATASOURCE_KEY);
  33.         DB db = new DB(dataSource);
  34.         HttpSession session = request.getSession(true);
  35.         
  36.         String talkType=(String)session.getAttribute(Constants.TALK_TYPE_KEY);
  37.         String username=(String)session.getAttribute(Constants.USERNAME_KEY);
  38.         Vector topics = new Vector();
  39.         
  40. String PageForward;
  41. ActionMessages errors = new ActionMessages();
  42.         if (talkType.equals("topic")) {   //插入新主题
  43.          Integer sortid =  (Integer)session.getAttribute(Constants.CUR_SORTID_KEY);
  44.         Topic topic = new Topic();
  45.         topic.setTitle(title);
  46.         topic.setContent(content);
  47.         topic.setSortid(sortid.intValue());
  48.         topic.setOwner(username);
  49.         if (topic.Insert(db)) {
  50.         
  51.          TopicDisp topicdisp = new TopicDisp();  //重新显示主题
  52.          topicdisp.setSortid(sortid.intValue());
  53. topics = topicdisp.search(db,0);
  54. session.setAttribute(Constants.TOPIC_LIST_KEY,topics);
  55.     PageForward="toTopic";//主题页面
  56.         }
  57.         else{
  58.              errors.add(ActionMessages.GLOBAL_MESSAGE,
  59.                            new ActionMessage("errors.insertFail"));
  60. if (!errors.isEmpty()) {
  61. saveErrors(request, errors);
  62.   PageForward="toWrong";
  63.         }
  64.         }
  65.         else{  //新回复
  66.          Integer topicid =  (Integer)session.getAttribute(Constants.CUR_TOPICID_KEY);
  67.         Respond respon = new Respond();
  68.         respon.setTitle(title);
  69.         respon.setContent(content);
  70.         respon.setTopicid(topicid.intValue());
  71.         respon.setOwner(username);
  72.        
  73.         if (respon.Insert(db)) {
  74.         
  75.          respon.setTopicid(topicid.intValue());
  76. topics = respon.search(db,topicid.intValue());
  77. session.setAttribute(Constants.RESPONS_LIST_KEY,topics);
  78.    
  79.     PageForward="toBbsContent";//回复页面
  80.          }
  81.         else{
  82.              errors.add(ActionMessages.GLOBAL_MESSAGE,
  83.                            new ActionMessage("errors.insertFail"));
  84. if (!errors.isEmpty()) {
  85. saveErrors(request, errors);
  86.   PageForward="toWrong";
  87.         }
  88.         }
  89.          
  90. db.close();
  91.     return (mapping.findForward(PageForward));
  92.   }
  93. }