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

📄 addarticleaction.java

📁 功能是公安和学校的管理系统,用struts+hibernate+spring等匡架组成,在eclepse就能编译
💻 JAVA
字号:
package com.comingnet.action;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;

import com.comingnet.bean.Article;
import com.comingnet.bean.ArticleAppFiles;
import com.comingnet.bean.ArticleDAO;
import com.comingnet.bean.UserInfor;
import com.comingnet.intercepter.UserSessionAware;
import com.db.ProxoolAction;
import com.opensymphony.xwork2.ActionSupport;

public class AddArticleAction extends ActionSupport implements
		UserSessionAware, ServletRequestAware {

	private static final long serialVersionUID = 4238758283220483521L;

	private UserInfor userSession = null;
	private String auid_test = "6";

	private int id;
	private Article article;
	private List<HashMap<String, String>> FirstLmList = null;
	private HttpServletRequest request;
	// 用于获取和保存上传文件信息
	private String[] imageFileName;
	private File[] myFile;
	private String[] myFileFileName;
	private String[] myFileContentType;
	private static final int BUFFER_SIZE = 16 * 1024;
	private ArrayList<ArticleAppFiles> filelist;

	public void setServletRequest(HttpServletRequest request) {

		this.request = request;
	}
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
			
	public String[] getImageFileName() {
		return imageFileName;
	}
	public void setImageFileName(String[] imageFileName) {
		this.imageFileName = imageFileName;
	}
	public File[] getMyFile() {
		return myFile;
	}
	public void setMyFile(File[] myFile) {
		this.myFile = myFile;
	}
	public String[] getMyFileContentType() {
		return myFileContentType;
	}
	public void setMyFileContentType(String[] myFileContentType) {
		this.myFileContentType = myFileContentType;
	}
	public String[] getMyFileFileName() {
		return myFileFileName;
	}
	public void setMyFileFileName(String[] myFileFileName) {
		this.myFileFileName = myFileFileName;
	}
	
	public String getAuid_test() {
		return auid_test;
	}
	public void setAuid_test(String auid_test) {
		this.auid_test = auid_test;
	}
	public UserInfor getUserSession() {
		return userSession;
	}
	public void setUserSession(UserInfor userSession) {
		this.userSession = userSession;
	}

	public Article getArticle() {
		return article;
	}

	public void setArticle(Article article) {
		this.article = article;
	}
	
	/**
	 * 将文件复制到给定的文件夹
	 * @param src	原文件
	 * @param dst	目标文件
	 */
	private static void copy(File src, File dst) {
		InputStream in = null;
		OutputStream out = null;
		try {
			in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);
			out = new BufferedOutputStream(new FileOutputStream(dst),
					BUFFER_SIZE);
			byte[] buffer = new byte[BUFFER_SIZE];
			while (in.read(buffer) > 0) {
				out.write(buffer);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (null != in)
					in.close();
				if (null != out)
					out.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 获取文件的扩展名
	 * @param fileName	包含扩展名的文件名
	 * @return	文件的扩展名
	 */
	private static String getExtention(String fileName) {
		int pos = fileName.lastIndexOf(".");
		return fileName.substring(pos);
	}
	
	/**
	 * 将notice信息保存到m_notice表
	 * @param notice
	 */
	private void saveArticleInDatabase(Article article){
		
		ArticleDAO dao = new ArticleDAO();
		String n_fbrxm = userSession.getUserxm() ;
		int n_xxbh = userSession.getUserxxbh() ;
		String n_xxmc = userSession.getUserxxmc() ;
		
		String n_fbrzh =String.valueOf(userSession.getUserid())  ;
		String n_userclass = userSession.getUserclass() ;
		
		article.setAr_fbrxm(n_fbrxm) ;
		article.setAr_xxbh(n_xxbh) ;
		article.setAr_xxmc(n_xxmc) ;
		article.setAr_fbrzh(n_fbrzh) ;
		article.setAr_xszt("1") ;
		article.setAr_userclass(n_userclass) ;
				
		dao.addArticle(article);	
	}
	
	/**
	 * 将上传的文件保存到notice/uploadFile文件夹中,并更名为:当前时间+文件序号+扩展名
	 *
	 */
	private void saveFilesInFolder(){
		if(myFile!=null){
			if(myFile.length != 0){
				imageFileName = new String[myFile.length];
				filelist = new ArrayList<ArticleAppFiles>();
			}
			for(int i=0; i<myFile.length; i++){
				ArticleAppFiles file = new ArticleAppFiles();
				file.setOldFilename(myFileFileName[i]);
				imageFileName[i] = new Date().getTime()+ i + getExtention(myFileFileName[i]);//保证在同一时间内上传的文件不重名
				file.setNewFilename(imageFileName[i]);
				File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/notice/uploadFile")+ "/" + imageFileName[i]);
				copy(myFile[i], imageFile);
				filelist.add(file);
			}
			article.setFiles(filelist);
		}
	}
	
	/**
	 * 根据id返回notice对象
	 * @return
	 */
	public String LoadArticle(){
		
		Connection conn = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		String flag = "";

		try {
			FirstLmList = new ArrayList<HashMap<String, String>>();
			HashMap<String, String> pair = null;
			conn = ProxoolAction.getConnection();
			stmt = conn.prepareStatement("select lmid,lmmc from w_lmb");
			rs = stmt.executeQuery();
			while (rs.next()) {
				pair = new HashMap<String, String>();
				pair.put("lmid", new Integer(rs.getInt(1)).toString());
				pair.put("lmmc", rs.getString(2));
				FirstLmList.add(pair);
			}
			System.out.println(FirstLmList.toString());
			flag = SUCCESS;
		} catch (Exception e) {
			System.out.println(e.toString());
			flag = ERROR;
		}finally{
			ProxoolAction.closeResultSet(rs);
			ProxoolAction.closeStatement(stmt);
			ProxoolAction.closeConnection(conn);
		}
		ArticleDAO dao = new ArticleDAO();
		dao.getArticleInfoById(getId());
		setArticle(dao.getArticle());
		request.setAttribute("content", article.getAr_nr());
		return flag;
	}
	
	/**
	 * 添加公告action方法 将上传文件保存到notice/uploadFile下,并添加数据库纪录
	 * @return
	 * 
	 */
	public String AddArticle(){
		saveFilesInFolder();
		saveArticleInDatabase(article);//保存article信息
		return SUCCESS;
	}

	public List<HashMap<String, String>> getFirstLmList() {
		return FirstLmList;
	}

	public void setFirstLmList(List<HashMap<String, String>> firstLmList) {
		FirstLmList = firstLmList;
	}

}

⌨️ 快捷键说明

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