?? newtopicsubmitaction.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 + -