自己封装用的Struts2BaseAction
来源:互联网 发布:网络发票管理系统下载 编辑:程序博客网 时间:2024/05/22 07:49
BaseAction
package com.easyjob.cnhuike.actions;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import org.springframework.context.ApplicationContext;import java.io.*;import java.util.ArrayList;import java.util.List;import com.easyjob.cnhuike.util.modelConstant.LoginConstant;import com.framework.util.DateUtil;import com.opensymphony.xwork2.ActionSupport;public class BaseAction extends ActionSupport {public static final String LIST="list";public static final String NEXT="next";String inputAction;String nextAction;public HttpServletRequest getRequest(){return ServletActionContext.getRequest();}public HttpServletResponse getResponse(){return ServletActionContext.getResponse();}public HttpSession getSession(){return getRequest().getSession();}public ServletContext getServletContext(){return ServletActionContext.getServletContext();}public String getRealyPath(String path){return getServletContext().getRealPath(path);}public String getInputAction() {return inputAction;}public void setInputAction(String inputAction) {this.inputAction = inputAction;}public String getNextAction() {return nextAction;}public void setNextAction(String nextAction) {this.nextAction = nextAction;}}上传用的BaseAction
package com.easyjob.cnhuike.actions;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import com.framework.util.DateUtil;public class BaseUploadFileAction extends BaseAction { public static final int BUFFER_SIZE=16*1024; // 用File数组来封装多个上传文件域对象 public File[] upload; // 用String数组来封装多个上传文件名 public String[] uploadFileName; // 用String数组来封装多个上传文件类型 public String[] uploadContentType; // 保存文件的目录路径(通过依赖注入) public String savePath=""; public BaseUploadFileAction(){savePath="\uploadFile";}//文件复制public boolean copy(File src, File dst,int BUFFER_SIZE) { boolean result=false; 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]; int len = 0; while ((len = in.read(buffer)) > 0) { out.write(buffer, 0, len); }result=true; } catch (Exception e) { e.printStackTrace();result=false; } finally { if (null != in) { try { in.close(); } catch (IOException e) { e.printStackTrace();}} if (null != out) { try { out.close(); } catch (IOException e) { e.printStackTrace();}}} return result; }//上传文件方法 public List<String> uploadFile(String path,boolean isFullPath) throws IOException{ List<String> successFileList=new ArrayList<String>(); // 处理每个要上传的文件 for (int i = 0; i < upload.length; i++) { // 根据服务器的文件保存地址和原文件名创建目录文件全路径 String srcFilesInfo=uploadFileName[i].toString();//取得文件的后缀 String FileExtensions=srcFilesInfo.substring(srcFilesInfo.lastIndexOf("."),srcFilesInfo.length()); String fileName=DateUtil.getNowDate(null)+"-"+DateUtil.getHour()+DateUtil.getMinute()+DateUtil.getSecond()+i+FileExtensions; String dstPath = getRealyPath(path) +"\"+fileName; File dstFile = new File(dstPath); if(copy(upload[i], dstFile,BUFFER_SIZE)){ if(isFullPath){successFileList.add(path+fileName);}else{successFileList.add(fileName);}}if(successFileList.size()<1){throw new IOException();}} return successFileList;} public List<String> uploadFile(String path) throws IOException{ return uploadFile(path,false);}//取得路径中的文件名 public List<String> getFileNames(String path){ File file=new File(getRealyPath(path)); List<String> resultList=new ArrayList<String>(); File[] files= file.listFiles(); for (File tempFile : files) {if(tempFile.isFile()){resultList.add(tempFile.getName());}} return resultList;}//建立文件夹 public void createFold(String path){try{path=getRealyPath(path);File folder = new File(path); if(!folder.exists()){folder.mkdirs();}}catch (Exception e) {e.printStackTrace();}}/* *geter and seter * * */public File[] getUpload() {return upload;}public void setUpload(File[] upload) {this.upload = upload;}public String[] getUploadFileName() {return uploadFileName;}public void setUploadFileName(String[] uploadFileName) {this.uploadFileName = uploadFileName;}public String[] getUploadContentType() {return uploadContentType;}public void setUploadContentType(String[] uploadContentType) {this.uploadContentType = uploadContentType;}public String getSavePath() {return savePath;}public void setSavePath(String savePath) {this.savePath = savePath;}public static int getBUFFER_SIZE() {return BUFFER_SIZE;}}上传时所用到的拦截配置
<interceptors><interceptor-stack name="albumUpload"> <interceptor-ref name="fileUpload"> <!-- 配置允许上传的文件类型,多个用","分隔 --> <param name="allowedTypes"> image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png, image/pjpeg </param> <!-- 配置允许上传的文件大小,单位字节 --> <param name="maximumSize">10240000</param> </interceptor-ref> <interceptor-ref name="defaultStack"/> </interceptor-stack></interceptors><action name="album!*"class="com.easyjob.cnhuike.actions.AlbumAction"method="{1}"><interceptor-ref name="albumUpload"/> <result>/album/album_{1}.jsp</result><result name="list"type="redirect-action">album!{1}List</result><result name="error">/album/album_error.jsp</result><result name="input">/album/album_error.jsp</result><result name="next"type="redirect-action"><param name="actionName">${nextAction}</param><param name="namespace">/album</param></result></action>
0 0
- 自己封装用的Struts2BaseAction
- 用UIPikerView封装自己的UIDatePicker
- 自己项目用的一个控件,自己封装的
- 自己封装的ajax
- 自己封装的泛型链表
- 封装自己的Framwork
- 封装自己的理解
- 自己封装的ajax
- MapList 自己封装的
- 封装自己的printf
- 自己封装的轮播图
- 封装自己的jquery
- 自己的jdbc轻封装
- 封装自己的socket类
- 自己封装的顺序表
- 自己封装的翻页控件
- 自己封装的ajax类
- 自己封装的简单多线程
- iOS重力行为、碰撞行为和吸附(Swift)
- 热补丁方案和Instant-Run总结
- HTTP层面的Web Service自动化测试
- Android 热修复
- java编程思想--接口
- 自己封装用的Struts2BaseAction
- 修改dg备库错误路径名的数据文件
- 简单理解View的onMeasure过程
- 61. Rotate List
- cas ajax+jsonp+iframe 实现无页面跳转
- linux下配置jdk环境变量的几种常用方法
- 《iOS应用安全攻防实战》读书笔记(一)
- springMVC发送POST请求时接收不到参数问题
- 运动学与雅可比矩阵举例