📄 newsaction.java
字号:
package math.news.controller;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Date;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import javax.sql.DataSource;import math.login.model.User;import math.news.DAO.NewsDAO;import math.news.model.News;import math.util.Pager;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.logging.LogFactory;import org.apache.struts.action.Action;import org.apache.struts.action.ActionError;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.upload.FormFile;public class NewsAction extends Action { private org.apache.commons.logging.Log __log = LogFactory.getFactory() .getInstance(this.getClass()); private DataSource ds = null; // ִ�� public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ds = getDataSource(request); ActionForward myforward = null; String myaction = mapping.getParameter(); String id = request.getParameter("id"); NewsDAO newsDAO = new NewsDAO(ds); if (isCancelled(request)) { if (__log.isInfoEnabled()) { __log.info(" [News] " + mapping.getAttribute() + " - action was cancelled"); } return mapping.findForward("cancel"); } if (__log.isInfoEnabled()) { __log.info(" [News] action: " + myaction); } if ("".equalsIgnoreCase(myaction)) { myforward = mapping.findForward("error"); } else if ("NEWSADD".equalsIgnoreCase(myaction)) { myforward = performNewsAdd(mapping, form, request, response); } else if ("SELECT".equalsIgnoreCase(myaction)) { myforward = performNewsList(mapping, form, request, response); } else if ("UPDATE".equalsIgnoreCase(myaction)) { myforward = performNewsSelect(mapping, form, request, response); } else if ("SAVE".equalsIgnoreCase(myaction)) { myforward = performNewsSave(mapping, form, request, response); } else if ("DELETE".equalsIgnoreCase(myaction)) { myforward = performNewsDelete(mapping, form, request, response); } else if ("CHECKOUT".equalsIgnoreCase(myaction)) { myforward = performNewsCheck(mapping, form, request, response); } else if ("NEWSSHOW".equalsIgnoreCase(myaction)) { myforward = performNewsShow(mapping, form, request, response); } return myforward; } // �������? private ActionForward performNewsAdd(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { try { if (actionForm instanceof NewsAddForm) { HttpSession session = request.getSession(); ds = getDataSource(request); String encoding = request.getCharacterEncoding(); if ((encoding != null) && (encoding.equalsIgnoreCase("gb2312"))) { response.setContentType("text/html; charset=gb2312"); } NewsAddForm newsAddForm = (NewsAddForm) actionForm; String Dir = "../webapps" + request.getContextPath() + "/news_img"; File dirName = new File(Dir); if (!dirName.exists()) { dirName.mkdirs(); } String pic_path = ""; String gs = newsAddForm.getGs(); NewsDAO newsDAO = new NewsDAO(ds); Date mydate = new Date(); long picname = (long) mydate.getTime(); if (newsAddForm.getTheFile().getFileName()==null || newsAddForm.getTheFile().getFileName().equalsIgnoreCase("")) { pic_path = ""; } else { pic_path = "news_img/" + picname + gs; } // ʵ��news javaBean News news = new News(); // ��newsAddForm�е�ֵ����news BeanUtils.populate(news, BeanUtils.describe(newsAddForm)); news.setUserId(((User)session.getAttribute("USER")).getId()); news.setUserIp(request.getRemoteHost()); news.setNewsImage(pic_path); // ��news ��Ϊ���� ���� NewsDAO�е�insert���� newsDAO.insert(news); FormFile file = newsAddForm.getTheFile(); try { InputStream stream = file.getInputStream(); OutputStream bos = new FileOutputStream(Dir + "/" + picname + gs); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) { bos.write(buffer, 0, bytesRead); } bos.close(); // close the stream stream.close(); } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } // destroy the temporary file created file.destroy(); return mapping.findForward("success"); } // this shouldn't happen in this example return mapping.findForward("error"); } catch (Exception e) { generalError(request, e); e.printStackTrace(); return mapping.findForward("error"); } } // ���ϲ�ѯ private ActionForward performNewsList(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { try { HttpSession session = request.getSession(); String condition; String temp = ""; NewsDAO newsDAO = new NewsDAO(ds); int offset; int length =10; String pagerOffset = request.getParameter("pager.offset"); if (pagerOffset == null || pagerOffset.equals("")) { offset = 0; NewsForm newsForm = (NewsForm) actionForm; String s=newsForm.getNewsTitle(); if(s==null){ s=""; } condition = "where newsTitle like '%" + s + "%'"; condition = condition + temp; session.setAttribute("CONDITION", condition); } else { offset = Integer.parseInt(pagerOffset); condition = (String) session.getAttribute("CONDITION"); if (condition == null) { condition = ""; } } List newslist = newsDAO.list(offset, length, condition); int size = newsDAO.getSize("news", condition); String url = request.getContextPath() + mapping.getPath() + ".do"; String pagerHeader = Pager.generate(offset, size, length, url); request.setAttribute("pagerHeader", pagerHeader); request.setAttribute("LIST", newslist); return mapping.findForward("newslist"); } catch (Exception e) { generalError(request, e); return mapping.findForward("error"); } } //��ѯȫ��������Ϣ private ActionForward performNewsShow(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { try { HttpSession session = request.getSession(); NewsDAO newsDAO = new NewsDAO(ds); int offset; int length = 10; String pagerOffset = request.getParameter("pager.offset"); if (pagerOffset == null || pagerOffset.equals("")) { offset = 0; NewsForm newsForm = (NewsForm) actionForm; String s=newsForm.getNewsTitle(); if(s==null){ s=""; } } else { offset = Integer.parseInt(pagerOffset); } List newslist = newsDAO.list(offset, length); int size = newsDAO.getSize("news",""); String url = request.getContextPath() + mapping.getPath() + ".do"; String pagerHeader = Pager.generate(offset, size, length, url); request.setAttribute("pagerHeader", pagerHeader); request.setAttribute("LIST", newslist); return mapping.findForward("newsShow"); } catch (Exception e) { generalError(request, e); return mapping.findForward("error"); } } //��ǰ���գɣĺŲ�ѯ��ʾ private ActionForward performNewsSelect(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { try { // ʵ��DAO,������ds NewsDAO newsDAO = new NewsDAO(ds); // �����ַ�str_idȡid String str_id = request.getParameter("id"); int id = 0; if (str_id != null &&str_id.trim().length()>0) { id = Integer.parseInt(str_id); } else { return mapping.findForward("error"); } // ����ѯ����reg News news = newsDAO.select(id); // NewsUpdateForm newsUpdateForm = (NewsUpdateForm) actionForm; // ��reg�е�ֵ����RegForm BeanUtils.populate(newsUpdateForm, BeanUtils.describe(news)); return mapping.findForward("update"); } catch (Exception e) { generalError(request, e); e.printStackTrace(); } return mapping.findForward("error"); } // ���ύ���� private ActionForward performNewsSave(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { try { // NewsAddForm newsAddForm = (NewsAddForm) actionForm; String encoding = request.getCharacterEncoding(); if ((encoding != null) && (encoding.equalsIgnoreCase("gb2312"))) { response.setContentType("text/html; charset=gb2312"); } String Dir = "../webapps" + request.getContextPath() + "/news_img"; File dirName = new File(Dir); if (!dirName.exists()) { dirName.mkdirs(); } // ʵ��DAO,������ds NewsDAO newsDAO = new NewsDAO(ds); Date mydate = new Date(); long picname = (long) mydate.getTime(); // ���form�?? NewsUpdateForm newsUpdateForm = (NewsUpdateForm) actionForm; String gs = newsUpdateForm.getGs(); if (newsUpdateForm.getTheFile().getFileName().equalsIgnoreCase("")) { String pic_path = ""; News news = new News(); int id=newsUpdateForm.getNewsId(); news=newsDAO.select(id); pic_path = news.getNewsImage(); System.out.println(pic_path); BeanUtils.populate(news, BeanUtils.describe(newsUpdateForm)); news.setNewsImage(pic_path); newsDAO.update(news); } else { String pic_path = ""; pic_path = "news_img/" + picname + gs; News news = new News(); BeanUtils.populate(news, BeanUtils.describe(newsUpdateForm)); news.setNewsImage(pic_path); newsDAO.update(news); } FormFile file = newsUpdateForm.getTheFile(); try { if (!file.getFileName().equalsIgnoreCase("")) { InputStream stream = file.getInputStream(); OutputStream bos = new FileOutputStream(Dir + "/" + picname + gs); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) { bos.write(buffer, 0, bytesRead); } bos.close(); // close the stream stream.close(); } } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); // destroy the temporary file created file.destroy(); } return mapping.findForward("save"); } catch (Exception e) { generalError(request, e); e.printStackTrace(); return mapping.findForward("error"); } } // ɾ�� private ActionForward performNewsDelete(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { try { NewsDAO newsDAO = new NewsDAO(ds); // NewsAddForm newsAddForm = (NewsAddForm) actionForm; //ʵ��Reg; //��RegForm�е�ֵ����reg int i=Integer.parseInt(request.getParameter("id")); // BeanUtils.populate(news, BeanUtils.describe(newsAddForm)); //news.setNewsId(newsAddForm.getNewsId()); //��reg��Ϊ�����RegDAO�е�insert���� newsDAO.delete(i); return mapping.findForward("newsdelete"); } catch (Exception e) { generalError(request, e); return mapping.findForward("error"); } } //�鿴���� private ActionForward performNewsCheck(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { try { HttpSession session = request.getSession() ; NewsDAO newsDAO = new NewsDAO(ds); int id=0; String newsId = request.getParameter("id"); if(newsId!=null&&!newsId.equals("")) { id=Integer.parseInt(newsId); } else{ return mapping.findForward("error"); } //ʵ��Reg; News news = newsDAO.checkout(id); //��Reg�е�ֵ����regForm // BeanUtils.populate(articleForm, BeanUtils.describe(article)); session.setAttribute("News", news); //��reg��Ϊ�����RegDAO�е�insert���� return mapping.findForward("newscheck"); } catch (Exception e) { generalError(request, e); return mapping.findForward("error"); } } private void sqlNullError(HttpServletRequest request, String objName) { ActionErrors errors = new ActionErrors(); errors.add("news", new ActionError("error.news.null")); saveErrors(request, errors); if (__log.isErrorEnabled()) { __log.error(" [News] has not found - " + objName); } } private void generalError(HttpServletRequest request, Exception e) { ActionErrors aes = new ActionErrors(); aes.add(aes.GLOBAL_ERROR, new ActionError("error.general", e .getMessage())); saveErrors(request, aes); e.printStackTrace(); if (__log.isErrorEnabled()) { __log.error(" [News] Error - " + e.getMessage()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -