开发工具:
1。eclipse3.0 + spindle
2.容器:tomcat
开始:
1,首先,新建一个Tapestry工程文件,命名为upload,在向导里面有三个步骤,我基本是打入工程名就直接按回车了。新建好工程后,你可以看到一个典型的web目录,在 WEB-INF自动生成4个文件:
upload.appliaction tapestry的应用程序文件。
Home.html tapestry的模版文件
Home.page tapestry的定义的摸版的配置文件
web.xml
2.接着,再新建两个Tapestry page文件,各命名为Upload ,Download.
(注意:要确认Generate an assiated HTML File,Ceate a new class被选定,对于要生成的.java我还是用Upload,Download来命名!);
对于生产.page和.jwc文件spindle提供了一个比较有用的向导,省了我好多工夫,呵呵。
3,现在就可以写代码了。
(1)Home.html
代码如下:
<html jwcid="@Shell" title="欢迎学习Tapestry!">
<H1><FONT color="red">十分钟搞定----在Tapestry实现文件上传与下载</FONT></H1>
<body>
<p><a href="#" jwcid="@PageLink" page="Upload">上传文件</a></p>
<p><a href="#" jwcid="@PageLink" page="Dowload">下载文件</a></p>
</body></html>
(2) Upload.html
<html jwcid="@Shell" title="上传文件">
<body>
<H1><FONT color="red">十分钟搞定----在Tapestry实现文件上传与下载</FONT></H1>
<P><FORM jwcid="@Form" listener="ognl:listeners.submit">
请选择你要上传的文件<input jwcid="@Upload" file="ognl:fileName" type="file">
</input><INPUT type="submit" value="上传"/>
</FORM>
</body>
</html>
(3)Dowload.html
<html jwcid="@Shell" title="上传文件">
<body>
<H1><FONT color="red">十分钟搞定----在Tapestry实现文件上传与下载</FONT></H1>
<a href="#" jwcid="@DirectLink" listener="ognl:listeners.dowload">点击下载</a>
</body>
</html>
4.到此,三个简单的html文件已经写好,接下来就实现java文件。
(1)Upload.java
package wenone;
import org.apache.tapestry.IRequestCycle;import java.io.*;
import org.apache.tapestry.html.BasePage;
import org.apache.tapestry.request.IUploadFile;
public abstract class Upload extends BasePage
{
public abstract IUploadFile getFile();
public void formSubmit(IRequestCycle cycle)
{
IUploadFile file = getFile();
if (file == null)
return;
File newFile=new File(file.getFileName());
file.write(newFile);//存到当前工作区
cycle.activate("Home");
}
}
5.Dowload.java
package wenone;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.html.BasePage;
import java.io.*;
public abstract class Download extends BasePage{
public void download(IRequestCycle cycle)
{
File file=new File("file.zip");
try
{
HttpServletResponse response =
cycle.getRequestContext().getResponse();
byte[] data = new byte[1024];
FileInputStream in = document.getFileInputstream();
response.setHeader("Content-disposition",
"inline; filename=" +
document.getFileName());
response.setContentType(file.getMimeType());
response.setContentLength(new Long(file.getSize()).intValue());
ServletOutputStream out = response.getOutputStream();
while (in.read(data) > -1)
{
out.write(data);
}
in.close();
response.flushBuffer();
}
catch (IOException e)
{
e.printStackTrace();
}
}
6,接近尾声;有了spindle这个例子配置文件基本不用管了,呵呵。
发布到tomcat就可以运行了,http://localhost:8080/upload/app
分享到:
- 2007-01-09 10:07
- 浏览 2908
- 评论(1)
- 论坛回复 / 浏览 (1 / 3839)
- 查看更多
相关推荐
《Tapestry 5 電子書》是关于Java Web开发框架Tapestry 5的一本详尽指南,由Packt Publishing在2007年出版。这本书旨在帮助开发者深入理解和掌握Tapestry 5的各个方面,从而利用其强大功能构建高效、可维护的Web应用...
在学习过程中,开发者会了解到如何使用Tapestry的组件进行页面布局、如何通过tapestry组件实现数据的增删改查操作、如何通过tapestry的LinkSubmit组件实现表单提交、如何进行表单验证以及如何使用tapestry的上传组件...
4. **tapestry-ioc-LICENSE.txt**:这部分涉及Tapestry的依赖注入(IOC)框架,它是Tapestry实现组件之间解耦的关键部分。 5. **tapestry-upload-LICENSE.txt**:关于Tapestry中文件上传功能的许可信息,帮助开发者...
6. **tapestry-upload.jar**:支持文件上传功能的组件。 7. **其他依赖库**:如Apache Commons、SLF4J日志框架、Jackson或Gson用于JSON处理等,这些库为Tapestry提供了丰富的功能扩展。 使用Tapestry 5.4.1 的...
8. **上传组件**:tapestry-upload模块提供了文件上传功能,包括文件大小限制、多文件上传等。 9. **日志和许可证**:在提供的LICENSE和NOTICE文件中,可以看到Tapestry 5.2.6遵循的开源许可协议,以及其依赖的其他...
### Tapestry5 使用文档知识点详解 #### 一、项目架构 **Tapestry5 的项目架构** 是理解其工作原理的基础。以下是对架构各部分的详细介绍: 1. **src项目类文件** - `com.xyst.base` 基类文件: - **...
4. **案例四:文件上传与下载**——介绍如何利用Tapestry处理文件上传请求以及提供安全的文件下载服务。 #### 结语 综上所述,《Enjoy Web Dev With Tapestry》不仅提供了Tapestry框架的基本介绍和使用方法,还...
文件上传下载(HandlingFileDownloadsandUploads) **6.1 源形页面显示图片** 在页面中展示上传的图片,需要处理图片的存储路径和URL。 **6.2 上传文件** Tapestry提供了文件上传组件,支持单文件或多文件上传,...
#### 六、文件上传下载(Handling File Downloads and Uploads) **6.1 源形页面显示图片** - **概念理解:** 在网页上直接展示图片。 - **具体实践:** 使用`<img>`标签,并为其提供图片的URL。 **6.2 上传文件**...
- **实现**: 使用`<tapestry:fileInput>`标签来实现文件上传功能。 - **示例**: `<tapestry:fileInput id="upload" value="${file}">` #### 七、使用公共层 (Providing a Common Layout) **7.1 公共层基础程序** -...
- **文件上传功能**:支持用户上传文件,并进行必要的验证和处理。 - **分页数据展示**:对大量数据进行分页处理,优化用户体验。 - **多语言支持**:通过国际化配置,使应用程序支持多种语言环境。 #### 五、最佳...
11. **上传组件**:`tapestry-upload`模块提供了文件上传功能,方便用户处理表单中的文件提交。 12. **学习资源**:`tapestry-tutorial1`可能是Tapestry5的教程项目,指导开发者逐步学习和掌握Tapestry5的使用。 ...
Spring开发文档主要涵盖Spring 3.1 MVC框架的多个方面,包括核心思想、特点、入门示例、参数传递、视图解析、拦截器、类型转换、JSON数据处理、文件上传、国际化与本地化以及JSR303验证。以下是这些知识点的详细说明...
5. 实现文件版本控制,回滚到旧版本。 6. 批量操作,减少网络请求,提高性能。 【描述】"tapestry-routing.zip" 提及的"Tapestry路由"是指Apache Tapestry框架中的URL路由机制。Tapestry是一个开源的Java Web开发...
如何在表单中添加文件上传功能。 - **7.3.2 完整的结果** 展示最终的效果。 **7.4 一个简单的数据列表程序** 介绍了如何使用Wicket来构建一个基本的数据列表程序。 以上是对给定文档中的主要知识点进行了详细...
分页、文件上传、图表打印和报表生成是常见的Web应用功能。 远程方法调用(RMI)、企业级JavaBean(EJB)和Web服务是Java的分布式计算技术。RMI用于Java对象间的远程通信,EJB提供了一种在Java EE服务器中部署和...
- 提供类级别的拦截器,许多功能如异常处理、文件上传、验证等都是通过拦截器实现的。 - 支持多种表现层技术如JSP、FreeMarker、Velocity等。 - 缺点是配置文件多且繁琐,性能上如值栈取值可能较差,适合稳定系统...
- Struts2的许多功能,如异常处理、文件上传和验证,都是通过拦截器实现的,这些拦截器可配置且可重用。 - 支持多种表现层技术,如JSP、FreeMarker和Velocity。 - OGNL用于快速访问值栈中的数据和调用值栈中的...
在描述中提到的“lib中缺少的两个文件已经分开上传”,这可能指的是Seasar2运行时所依赖的某些库文件没有包含在原始的压缩包中,用户需要额外下载这两个文件来确保框架的完整性和正常运行。由于上传文件大小限制为5...
在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons...