DWR+Ajax+Struts实现文件上传进度条教程
需积分: 6 191 浏览量
更新于2024-09-13
收藏 51KB DOC 举报
"这篇资源是关于如何使用DWR(Direct Web Remoting)+Ajax和Struts框架来开发文件上传进度条功能的教程,适合初学者。文档提供了完整的源码示例,可以从指定链接下载。主要涉及的技术包括DWR用于后台与前端的通信,Ajax处理异步请求,以及Struts负责业务逻辑和表单处理。用户需要解压下载的war文件,修改相应的配置文件以适应自己的Struts应用。"
在这个项目中,开发者利用DWR、Ajax和Struts创建了一个文件上传进度条,提供了一种直观的方式来显示文件上传的状态。DWR是一种让Java和JavaScript进行实时交互的技术,它使得Web应用程序能够像桌面应用一样更新页面,而无需刷新整个页面。
首先,你需要从提供的链接下载一个名为`ajax-upload-1.0.war`的文件,这是一个预打包的应用程序。通过在命令行中使用`jar xvf ajax-upload-1.0.war`命令来解压这个WAR包,源代码会位于解压后的`\WEB-INF\src`目录下。
在解压后的文件中,`index.jsp`是上传文件的前端页面,而`upload.jsp`负责处理文件上传的后端逻辑。`resources`文件夹下的脚本用于DWR和服务器之间的通信。你需要将`index.jsp`中的表单提交动作(action)更改为你的Struts action,同时将表单中的文件输入字段(file)名称与你在Struts ActionForm中的文件属性对应起来。
以下是一个简单的`index.jsp`页面代码示例:
```html
<%@page contentType="text/html;charset=gb2312" language="java" import="java.util.*" errorPage=""%>
<%
String path = request.getContextPath();
%>
<html locale="true">
<head>
<SCRIPT language=javascript>
// JavaScript 代码用于检查文件是否选择,启动进度条等
</SCRIPT>
</head>
<body>
<form action="你的StrutsAction" method="post" enctype="multipart/form-data">
<input type="file" name="你的file属性名" onchange="check_file();">
<!-- 其他表单元素 -->
<input type="submit" value="上传">
</form>
</body>
</html>
```
此外,`index.jsp`中的JavaScript函数`check_file()`用于验证用户是否选择了文件,如果未选择则弹出警告。`loadmessage()`函数则用来显示服务器返回的消息,例如文件上传成功或失败的信息。
为了使这个示例在你的项目中工作,你需要确保正确配置了DWR的`dwr.xml`文件,以便它知道如何处理与文件上传相关的Java方法调用。同时,不要忘记将所有必需的JAR库添加到你的项目类路径中,这些库通常位于解压后的`lib`目录下。
这个资源提供了一个实践性的教程,帮助开发者了解如何集成DWR、Ajax和Struts来创建一个功能完善的文件上传进度条,这对于构建交互性更强的Web应用非常有用。
2013-10-15 上传
2007-04-04 上传
2010-11-02 上传
2015-03-07 上传
点击了解资源详情
2011-11-30 上传
2014-04-22 上传
2009-05-06 上传
nuonuo1905
- 粉丝: 0
- 资源: 12
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫