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

📄 newsaction.java

📁 数学网
💻 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 + -