【第22期】观点:IT 行业加班,到底有没有价值?

GWT —文件上传(导入)

原创 2016年08月31日 16:13:16

GWT 2.8版本出来啦,正在学习的伙伴们可以试试哈大笑


项目中文件上传(导入)功能是很常见的,那么在GWT项目中,如何实现呢?最近刚刚做了这个功能:

核心代码如下:

import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler;
import com.google.gwt.user.client.ui.FormPanel.SubmitEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitHandler;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Dialog;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;


/**
 * <pre>
 * 导入通用类
 * 使用方法:
 * 1,继承此类通过super(...) 传入指定参数
 * 2,实现uploadResult(msg)方法,msg 表示上传过后的响应结果格式根据后台响应数据进行处理即可
 * 
 * @author CFM
 * </pre>
 */
public abstract class ExcelUpload extends Dialog {
	String title;
	
	/**
	 * 实例
	 * @param title
	 * @param actionURL
	 */
	public ExcelUpload(String title,String actionURL) {
		setWidth(550);
		setHeight(300);
		centerInPage();
		setIsModal(true);
		// setShowFooter(true);
		setShowMinimizeButton(false);
		//setImage("t_excel", "silk/page_excel.png");
		if(null==title||title.equals("")){
			setTitle("EXCEL导入");
		}else{
			setTitle(title);
		}


		final IButton uploadbutton = new IButton("导入");
		final FileUpload fileUpload = new FileUpload();
		final FormPanel formpanel = new FormPanel();
		fileUpload.setName("uploadFormElement");


		formpanel.setEncoding(FormPanel.ENCODING_MULTIPART);
		formpanel.setMethod(FormPanel.METHOD_POST);
		formpanel.setAction(actionURL);
		formpanel.setWidget(fileUpload);


		uploadbutton.setIcon("silk/page_go.png");
		uploadbutton.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent sender) {
				if (fileUpload.getFilename().length() == 0) {
					SC.warn("请选择您要导入的文件");
					return;
				}
				if (!fileUpload.getFilename().contains(".xls")) {
					SC.warn("文件格式不对(必须是excel文件)");
					return;
				}
				formpanel.submit();
			}
		});
		formpanel.addSubmitHandler(new SubmitHandler() {
			@Override
			public void onSubmit(SubmitEvent event) {
				uploadbutton.setTitle("导入中...");
				uploadbutton.disable();
			}
		});
		formpanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
			public void onSubmitComplete(SubmitCompleteEvent event) {
				destroy();
				uploadResult(event.getResults());
			}
		});
		addItem(formpanel);
		addItem(uploadbutton);
	}


	/**
	 * Fired when a file has been submitted successfully.
	 * @param rst
	 */
	public abstract void uploadResult(String rst);
}


继承使用:


public class ExcelImport extends ExcelUpload {

	public ExcelImport() {
		super("Excel导入","XXX/order/fileupload");
		
	}

	@Override
	public void uploadResult(String rst) {
		SC.say("导入结果:" + rst);
	}
}


调用:

new ExcelImport().show();


是不是很简单啦。。。收工!



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

GWT 实现文件上传和下载

首先下载两个包 commons-fileupload-?.jar和commons-io-?.jar  将他们配置到你的项目中 上传代码: client 端代码:final FileUpload f...

gwt使用apache-commons-fileUpload,轻松实现文件上传

gwt使用apache-commons-fileUpload,轻松实现文件上传,图片上传等功能。  1.gwt 前端页面(可以做成组建,供各个模块调用) FormPanel formPanel  = new FormPanel();   formPanel.set...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

AFN网络框架2.x版—文件上传

/** * 文件上传 */ - (void)uploadFile { //1.获得请求管理者 AFHTTPRequestOperationManager *mgr = [AFHT...

[导入]在Struts 2中实现文件上传

     摘要: Struts 2.0系列之九 Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)