xheditor在Struts2中的上传配置
????????? 此前的一篇文章介绍了xheditor使用servlet实现上传的接口,但在Struts2的应用中由于Struts2封装了request和response使得,此前写的程序无法获取数据。可能通过一些修改可以另前面的程序继续使用,但是我这里介绍一种完全使用Struts2标准的xheditor配置方法。其实这个方法在xheditor的官方论坛有讲过,但是由于讲述并不清楚,可能对于一些新手使用并不方便,我这里结合我使用的方法,整理出来代码供大家参考。
?
1、首先是在textarea中配置class
?
class=“xheditor {skin:'o2007blue',html5Upload:false,upMultiple:'1',upImgUrl:'Upload.do',upImgExt:'jpg,jpeg,gif,bmp,png',upLinkUrl:'Upload.do',upLinkExt:'zip,rar,txt,docx,doc,xls,xlsx,pdf'}"
??
?注意到我这里的上传的Action是Upload.do
?
2、接着下来配置Struts.xml来解析配置
?
<action name="Upload" method="uploadPicture"> <result> /SuccessUpload.jsp </result> </action>
??
这个xml配置主要是做一些简单的返回,最后我会具体的写明白返回的jsp应该怎么写
?
3、这步就主要编写Upload的Action
package com.webapp.action;import java.awt.Image;import java.io.File;import javax.imageio.ImageIO;import org.apache.commons.io.FileUtils;public class XheditorUploadAction extends PersonCommonAction {private File filedata;private String filedataContentType;private String filedataFileName;private String err;private String msg;private String message;private String fileExt = "jpg,jpeg,gif,bmp,png";public String uploadPicture() throws Exception {String saveRealFilePath = getSession().getServletContext().getRealPath("/") + "resources/XheditorUpload/" ;File fileDir = new File(saveRealFilePath);if (!fileDir.exists()) {fileDir.mkdirs();}File savefile;savefile = new File(saveRealFilePath + filedataFileName);FileUtils.copyFile(filedata,savefile);msg = "resources/XheditorUpload/" + filedataFileName;err="";printInfo( err, msg);return SUCCESS;}public void printInfo(String err,String newFileName) {message = "{"err":"" + err + "","msg":"" + newFileName+ ""}";}public String uploadJsp(){return SUCCESS;}public File getFiledata() {return filedata;}public void setFiledata(File filedata) {this.filedata = filedata;}public String getFiledataContentType() {return filedataContentType;}public void setFiledataContentType(String filedataContentType) {this.filedataContentType = filedataContentType;}public String getFiledataFileName() {return filedataFileName;}public void setFiledataFileName(String filedataFileName) {this.filedataFileName = filedataFileName;}public String getErr() {return err;}public void setErr(String err) {this.err = err;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}
??
?
这里重点理解的是filedata,因为xheditor会把filedata的值写到值栈里边,而Struts2会自动获取这个值
?
?
4、接着是SuccessUpload.jsp
<%@ taglib prefix="s" uri="/struts-tags" %><s:property value="message" escape="false"/>
??
?这个很简单,就在jsp页面里边写两行就可以了,其实这里是把message的值打印出来,返回给xheditor而已