Struts2 框架上传文件的进度条的实现
//-------------------------------------------------------------------------------------------------------------
Struts上传文件是在拦截器中实现的!!在action中文件的处理是对在服务器端的临时文件操作的也就是在action中文件已经上传完毕。拦截器中自己重新实现org.apache.struts2.dispatcher.multipart.MultiPartRequest的接口 创建一个自己MyMultiPartRequest的类!里面的方法和org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest 里面的方法基本上一样只要在 pareRequest方法里面添加自己的监听器就可以!
//创建自己的监听器
MyProgressListener progressListener;
progressListener =new MyProgressListener(servletRequest);
//添加自己的监听器
upload.setProgressListener(progressListener);MyProgressListener
//---------------------------------------------------------------
创建自己的监听器的类MyProgressListener实现的是org.apache.commons.fileupload.ProgressListener的接口 里面的方法有:
private HttpSession session;
public MyProgressListener(HttpServletRequest request) {
session=request.getSession();
State state=new State();
session.setAttribute("state", state);
}
public void update(long readedBytes, long totalBytes,int currentItem) {
State state=(State) session.getAttribute("state");
state.setReadedBytes(readedBytes);
state.setTotalBytes(totalBytes);
state.setCurrentItem(currentItem); }
//---------------------------------------------------------------
State是状态类:
里面属性有readedBtyes当前读大小;
totalBytes文件总大小;
currentItem 传输量;
rate百分比;
这几个属性有对应的get和set方法
//---------------------------------------------------------
Action类里面包含2个方法
(1):文件上传按照Struts的文档中file-upload.html这个文件可以详细说明
(2):文件进度条的方法里可以先得到HttpSession session; session=ServletActionContext.getRequest().getSession();
根据监听器里面session.setAttribute("state", state);
可以得到相应的State对象 (State) session.getAttribute("state");
//---------------------------------------------------------------
Struts.xml文件中加入对应的配置:
这个配置的功能是使系统调用自己创建的MyMultiPartRequest而不是JakartaMultiPartRequest 是按照Struts-default.xml来配的 因为jsp页面用的是jquery来实现异步的, 需要导入对应的struts2-json-plugin-2.2.3.jar
//--------------------------------------------------------------
Jsp :
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script >
function callback(){
$.post(
'./uploading_updateplan',//对应的action路径
function(data)
if(data.state.rate!=100){
$("#m").text(data.state.readedBytes+'/'+data.state.totalBytes+':'+data.state.rate+'%');
}else{
$("#m").text(data.state.readedBytes+'/'+data.state.totalBytes+':'+'100% 上传完成!');
}
},
'json'
);
}
function f() {
window.setInterval("callback()", 100);//每隔100毫秒执行callback
document.form.submit();//提交数据
}
相关推荐
在Java Struts2框架中实现文件上传进度条显示,主要涉及到的技术点包括Struts2的文件上传、Ajax异步通信以及前端进度条组件的使用。下面将详细讲解这些知识点。 首先,Struts2的文件上传功能是通过Struts2提供的`...
1.struts2 带进度条文件上传 源码 2.源码中有lib 下载后部署马上就能用 3.代码中有详细的注释信息 4.对关键点有详细的解释说明 5.如果谁用起来觉得有问题可在评论留言,留联系方式,我会联系你的 6.非常感谢原创作者...
总的来说,实现Struts1文件上传带进度条的功能,需要前端与后端的紧密配合,利用现代浏览器的API,以及对Struts1框架的深入理解。这不仅可以提升用户体验,也是技术能力的一种体现。在实际开发中,我们还需要考虑...
总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...
### Struts 1.2 下实现文件上传进度条的关键知识点 #### 一、背景与目的 在基于Struts 1.2的Web应用中,实现文件上传时常常需要提供一个友好的用户界面来显示文件上传进度。这不仅提高了用户体验,还能够实时反馈...
Struts2作为一款流行的Java Web框架,提供了丰富的功能来处理用户请求,包括文件上传。在Struts2中实现文件上传并展示进度条是一项常见的需求,它能提升用户体验,尤其是在处理大文件时。以下将详细解释如何在Struts...
在Struts中,可以实现单文件和多文件的上传,并且为了提升用户体验,我们还可以添加进度条来显示文件上传的状态。本文将详细介绍如何在Struts中实现这两个功能,并带上传进度条。 首先,我们需要了解Struts中处理...
这个名为“带进度条的文件上传下载组件(JAVA)”的项目,显然聚焦于提供一个用户友好的交互体验,通过显示进度条来增强用户体验,使用户能够清晰地看到文件上传或下载的进度。下面我们将深入探讨这一组件涉及的主要...
在本主题中,“struts文件带进度条上传,文件下载”指的是在Struts框架下实现带有进度条的文件上传与下载功能,同时解决中文乱码问题,并确保兼容各种浏览器。 **文件上传** 在Struts中,文件上传通常使用`struts2...
"Struts2文件上传带进度条页面无刷新"的实现涉及多个技术点,包括Struts2的文件上传插件、AJAX异步通信以及前端进度条展示。 首先,Struts2的文件上传依赖于`struts2-upload-plugin`。这个插件扩展了Struts2的核心...
在“struts2.1 带进度条上传”这个主题中,我们将深入探讨如何使用Struts2.1实现文件上传功能,并且添加一个进度条来增强用户体验。 首先,文件上传在Web应用中是非常常见的需求,它允许用户上传各种类型的文件到...
Struts2文件上传进度条是Web开发中一个实用的功能,它允许用户在文件上传过程中查看当前的上传进度,提供更好的用户体验。在这个项目中,我们利用Struts2框架的拦截器机制来实现这一功能。 首先,我们需要理解...
Java 文件上传带进度条的功能是通过结合Ajax技术与Struts2框架中的ProgressListener接口来实现的,以便在用户界面实时展示文件上传的进度。以下是详细的知识点解释: 1. **Ajax 进度查询机制**: - 在客户端,使用...
总的来说,"struts2+ajax文件进度条的实现"是一个典型的前后端协同工作的示例,它展示了如何在Java web应用中优化用户体验,特别是在处理大文件上传时。通过理解Ajax的工作原理、Struts2的文件上传机制以及前端组件...
### 采用DWR+AJAX和Struts开发文件上传进度条 #### 一、概述 在Web应用开发中,文件上传是一项常见的功能需求。传统的文件上传方式无法提供良好的用户体验,尤其是对于大文件上传时,用户很难了解到上传进度,进而...
在Struts2中,实现文件上传功能是非常常见的需求,而带进度条的文件上传则可以提供更好的用户体验,让用户了解文件上传的进度,减少用户的等待焦虑感。 Struts2的文件上传主要依赖于Apache的Commons FileUpload库。...
在这个示例中,我们将深入探讨如何在Struts2框架下实现文件上传进度条的功能。 首先,Struts2框架提供了一种处理文件上传的机制,基于Apache的Commons FileUpload库。为了实现上传进度条,我们需要理解这两个关键...
本篇文章将详细探讨如何在Struts2中实现文件上传的进度条功能,主要关注后台部分。 首先,了解Struts2的文件上传机制至关重要。Struts2使用Apache Commons FileUpload库来处理文件上传。当用户提交包含文件的表单时...
在这个项目中,Struts2提供了一套灵活的动作和拦截器机制,使得文件上传可以通过自定义Action类来实现,同时它支持与Ajax的交互,可以实现无刷新的进度条展示。 2. **Spring**:Spring框架是一个全面的企业级应用...
标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...