首页 > 代码库 > struts2 一个简洁的struts.xml
struts2 一个简洁的struts.xml
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.ui.theme" value=http://www.mamicode.com/"simple">>
BaseAction.javapackage com.yl.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class BaseAction extends ActionSupport { /** * 序列化ID */ private static final long serialVersionUID = 1L; protected String successResultValue; public String getSuccessResultValue() { return successResultValue; } public void setSuccessResultValue(String successResultValue) { this.successResultValue = http://www.mamicode.com/successResultValue;>
一个例子action:package com.yl.action; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.annotation.Resource; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.yl.biz.ImgBiz; import com.yl.config.SysConfig; import com.yl.cons.UploadResult; import com.yl.entity.Img; import com.yl.util.CipherUtil; @Component("imgAction") @Scope("prototype") /** * 图片Action */ public class ImgAction extends BaseAction { /** * 序列化ID */ private static final long serialVersionUID = 1L; /** * 路径 */ private File upload; public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } /** * 图片实体 */ private Img img; public Img getImg() { return img; } public void setImg(Img img) { this.img = img; } /** * 注入 */ @SuppressWarnings("unused") @Resource(name = "imgBiz") private ImgBiz imgBiz; /** * 图片上传 * * @return */ @SuppressWarnings("deprecation") public String uploadFile() { @SuppressWarnings("unused") String paths = getRequest().getRealPath("/"); // 判断路径是否为空 if (this.upload == null || !this.upload.isFile() || !this.upload.canRead()) { this.addActionError(UploadResult.NULLFILE.getTitle()); return SUCCESS; } try { FileInputStream fis = new FileInputStream(this.upload); // 获得图片大小 int fileSize = fis.available(); // 判断图片大小 if (fileSize > SysConfig.MAX_FILE_SIZE) { this.addActionError(UploadResult.TooLargeFile.getTitle()); } else { // 保存路径 String path = SysConfig.PUBLIC_PATH; // 获取图片名字 String fileName = this.upload.getName(); // 判断是否有点 if (!fileName.contains(".")) { this.addActionError(UploadResult.NOTIMG.getTitle()); } // 截取文件类型 fileName = fileName.substring(fileName.lastIndexOf(".")); SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss aa"); // 从新给图片命名 fileName = CipherUtil.md5Encoding(sdf.format(new Date())) + fileName; // 保存图片路径+图片名字 fileName = path + "\\" + fileName; // New一个新的地址. File file = new File(fileName); // 输出图片到新的地址 FileOutputStream fos = new FileOutputStream(file); int c; byte b[] = new byte[4 * 1024]; while ((c = fis.read(b)) != -1) { fos.write(b, 0, c); } // 关闭相关操作 fos.flush(); fis.close(); // 保存成功信息 this.addActionError(UploadResult.SUCCESS.getTitle()); } } catch (FileNotFoundException e) { // 保存失败信息 this.addActionError(UploadResult.NULLFILE.getTitle()); e.printStackTrace(); } catch (IOException e) { // 保存失败信息 this.addActionError(UploadResult.UPLOADFAIL.getTitle()); e.printStackTrace(); } // 设置返回页面 setSuccessResultValue("/index.jsp"); return SUCCESS; } }
常量:package com.yl.config; import org.apache.struts2.ServletActionContext; import org.springframework.beans.factory.InitializingBean; /** * 图片系统类 * */ public class SysConfig implements InitializingBean { public static Boolean IS_DEBUG = true; /** * 上传图片大小控制 */ public static int MAX_FILE_SIZE = 1024 * 1024 * 100; /** * 上传图片路径控制 */ @SuppressWarnings("deprecation") public static String PUBLIC_PATH = ServletActionContext.getRequest().getRealPath("/") + "upload"; private SysConfig() { } public static boolean isDebug() { return IS_DEBUG != null && IS_DEBUG; } public void setIS_DEBUG(Boolean iS_DEBUG) { IS_DEBUG = iS_DEBUG; } public void afterPropertiesSet() throws Exception { } }
一个错误的结果enum封装,使用见action:package com.yl.cons; /** * 上传返回标志 * */ public enum UploadResult { SUCCESS((short) 0, "成功"), NULLFILE((short) 1, "找不到文件"), NOTIMG((short) 2, "非图片文件"), UPLOADFAIL((short) 3, "上传失败"), TooLargeFile((short) 4, "文件过大"); /** * 错误类型 */ private short type; /** * 错误名称 */ private String title; private UploadResult(short type, String title) { this.type = type; this.title = title; } public short getType() { return type; } public String getTitle() { return title; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。