package com.appdev.bsf.client.file;
import com.appdev.bsf.common.client.messagebox.MessageBox;
import com.google.gwt.core.client.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.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
public class GwtFileUploadLayout extends HLayout {
private FormPanel formPanel = null;
/**
*
* @param submitHandler
* 不可以为null,<br>
* 设置action,例如:formPanel.setAction(GWT.getModuleBaseURL() +"fileupload?id=1&clsUrl=" + Object.class);<br>
* //id:为当前记录的id值,clsUrl:当前操作实体类全路径(注意参数名字必须一样)<br>
* if (fileUpLoad.getFilename().length() == 0) {<br>
* MessageBox.getInstance().initComponents("必须选择一个文件");<br>
* event.cancel();<br>
* } else if (!fileUpLoad.getFilename().toLowerCase().endsWith(".jpg")<br>
* && !fileUpLoad.getFilename().toLowerCase().endsWith(".gif")) {<br>
* event.cancel();<br>
* }//验证<br>
* @param submitCompleteHandler
* 可以为null,用于上传至服务之后可以做其它操作
*/
public GwtFileUploadLayout(SubmitHandler submitHandler, SubmitCompleteHandler submitCompleteHandler) {
setWidth(200);
final FileUpload fileUpLoad = new FileUpload();
fileUpLoad.setName("imageFileUpload");
formPanel = new FormPanel();
formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
formPanel.setMethod(FormPanel.METHOD_POST);
formPanel.setWidget(fileUpLoad);
final IButton btnUpload = new IButton("upLoadButton");
btnUpload.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
formPanel.submit();
}
});
formPanel.addSubmitHandler(new SubmitHandler() {
@Override
public void onSubmit(SubmitEvent event) {
formPanel.setAction(GWT.getModuleBaseURL() + "fileupload?id=1&clsUrl=" + Object.class);
if (fileUpLoad.getFilename().length() == 0) {
MessageBox.getInstance().initComponents("必须选择一个文件");
event.cancel();
} else if (!fileUpLoad.getFilename().toLowerCase().endsWith(".jpg")
&& !fileUpLoad.getFilename().toLowerCase().endsWith(".gif")) {
event.cancel();
}
}
});
if (submitCompleteHandler == null) {
formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
@Override
public void onSubmitComplete(SubmitCompleteEvent event) {
String result = event.getResults();
if ("".equals(result)) {
MessageBox.getInstance().initComponents("文件上传成功");
} else {
MessageBox.getInstance().initComponents("文件上传失败");
}
}
});
} else {
formPanel.addSubmitCompleteHandler(submitCompleteHandler);
}
addMember(formPanel);
addMember(btnUpload);
}
public FormPanel getFormPanel() {
return formPanel;
}
}
分享到:
相关推荐
GWT是一款强大的开发工具,它允许开发者使用Java语言编写客户端的Web应用,然后自动编译成JavaScript,使得开发者可以充分利用Java的强类型和丰富的库来构建复杂的前端应用。 在GWT中实现文件上传,首先需要理解的...
本教程将聚焦于“上传组件开发”,特别是基于流行的前端框架Bootstrap3的实现。Bootstrap3以其响应式设计和丰富的UI组件,深受开发者喜爱,用于创建美观且功能齐全的网页。 首先,我们来详细讨论“多文件上传”这一...
1. **Java编程**: GWT允许开发者使用Java语言进行前端开发,避免了学习JavaScript或其他前端语言的困扰。Java的强类型、面向对象特性以及丰富的库为开发带来了便利。 2. **编译成JavaScript**: GWT将Java代码编译成...
运行GWT应用通常涉及两部分:后台的App Engine服务器和前端的浏览器。在Eclipse中,通过“Run as Web Application”命令可以启动应用,自动打开浏览器预览页面,同时在后台启动App Engine服务器。这种集成式的运行...
**GWT(Google Web Toolkit)与Maven的结合** GWT(Google Web Toolkit)是一个开源的Java开发工具,它允许...同时,GWT提供的Java到JavaScript的编译能力,使得开发者可以使用熟悉的Java语言开发复杂的前端应用。
本资源提供了GWT界面编写的示例源代码,包括了处理浏览器兼容性问题以及文件上传和下载的实例。 首先,`.classpath`和`.project`是Eclipse项目的配置文件,它们定义了项目的类路径和构建设置。`.classpath`文件指定...
GWT是一种开源的Java SDK,它允许开发者用Java编写前端代码,并自动生成优化过的JavaScript,从而在浏览器中运行。GWT提供了丰富的UI组件、数据绑定、异步RPC通信以及强大的调试工具,极大地提高了开发效率。 ...
GWT应用程序的核心是入口点类,它负责初始化UI组件并处理事件。入口点类必须实现 `com.google.gwt.core.client.EntryPoint` 接口,并提供一个 `onModuleLoad()` 方法: ```java public class MyApp implements ...
在这个项目中,Django主要负责后端逻辑,包括用户认证、图片上传、数据库操作等,而GWT则构建前端用户界面,提供动态交互体验。两者通过HTTP协议进行通信,通常使用JSON格式传输数据。用户在GWT界面上传图片,这些...
JSUpload控件是一种基于JavaScript编写的前端文件上传组件,它为网页应用提供了高效且用户友好的文件上传功能。在Web开发中,文件上传是常见的需求,例如用户上传个人头像、文档分享、图片上传等。JSUpload控件通过...
8. **前端框架**:尽管GWT是一个开发工具,但现代Web开发往往使用如React、Vue或Angular等前端框架。理解这些框架如何与GWT集成,可以提升用户体验和功能实现。 9. **错误调试和性能分析**:在CUDA编程中,错误调试...
Google Web Toolkit (GWT) 是一个开源的Java框架,它允许开发者使用Java语言来编写前端Web应用,然后自动编译成优化过的JavaScript代码,以在各种浏览器上运行。GWT 提供了丰富的UI组件库,以及强大的代码分割、异步...
- **GWT组件与API**:熟悉GWT的核心组件和API,这有助于更好地利用其特性来增强应用程序的功能。 - **前端与后端集成**:合理设计前端UI与后端逻辑之间的交互,确保应用程序的流畅性和用户体验。 #### 部署到Google...
3. **文件上传**:DWR支持AJAX方式的文件上传,前端选择文件后,后台处理文件上传,同时提供进度反馈。 ### DWR与框架的整合 DWR可以方便地与各种Web框架集成,例如: - **Spring框架**:DWR可以与Spring无缝结合...
GWT允许开发者使用Java编写前端代码,然后通过编译器将其转换成优化过的JavaScript,可以在所有现代浏览器中运行。描述中提到,GWT编译需要引入"appengine-java-sdk",这是因为AppEngine提供了GWT的兼容支持,使得...
虽然标签中提到了“加瓦”,但在这个上下文中,可能是指Google Web Toolkit(GWT),这是一个开源的Java开发工具包,允许开发者用Java编写前端应用,并自动编译成高效的JavaScript代码。GWT提供了丰富的UI组件和强大...
5. **文件上传**: 利用DWR实现无刷新的文件上传,同时展示上传进度。 **五、DWR与其他Ajax框架比较** 1. **相对于XMLHttpRequest**: DWR提供更高级的抽象,使JavaScript代码更简洁,更易于调试。 2. **与jQuery/...
4. **GWT(Google Web Toolkit)**:允许用Java编写前端代码,编译成优化的JavaScript。 5. **Spring MVC**:Spring框架的一部分,提供了集成Ajax的解决方案。 **总结** "基于J2EE的Ajax宝典"这本书可能涵盖了如何...