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

📄 newtopicsubmitaction.java

📁 bbs 网上论坛系统源代码(Struts)
💻 JAVA
字号:
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));					
 	}

}

⌨️ 快捷键说明

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