`
h5566h
  • 浏览: 74508 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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" class="com.webapp.action.XheditorUploadAction" 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而已

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics