`
jwfpd
  • 浏览: 127530 次
  • 性别: Icon_minigender_1
  • 来自: 中国安徽
社区版块
存档分类
最新评论

在Tapestry实现文件上传与下载

阅读更多
开发工具:
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
分享到:
评论
1 楼 donggz_renji 2007-02-05  
这里边document是哪个类的引用啊?

相关推荐

    Tapestry 5 電子書

    《Tapestry 5 電子書》是关于Java Web开发框架Tapestry 5的一本详尽指南,由Packt Publishing在2007年出版。这本书旨在帮助开发者深入理解和掌握Tapestry 5的各个方面,从而利用其强大功能构建高效、可维护的Web应用...

    tapestry的文档

    在学习过程中,开发者会了解到如何使用Tapestry的组件进行页面布局、如何通过tapestry组件实现数据的增删改查操作、如何通过tapestry的LinkSubmit组件实现表单提交、如何进行表单验证以及如何使用tapestry的上传组件...

    tapestry-bin-5.1.0.5

    4. **tapestry-ioc-LICENSE.txt**:这部分涉及Tapestry的依赖注入(IOC)框架,它是Tapestry实现组件之间解耦的关键部分。 5. **tapestry-upload-LICENSE.txt**:关于Tapestry中文件上传功能的许可信息,帮助开发者...

    Tapestry 5.4.1 相关jar文件

    6. **tapestry-upload.jar**:支持文件上传功能的组件。 7. **其他依赖库**:如Apache Commons、SLF4J日志框架、Jackson或Gson用于JSON处理等,这些库为Tapestry提供了丰富的功能扩展。 使用Tapestry 5.4.1 的...

    tapestry5.2.6 jar包

    8. **上传组件**:tapestry-upload模块提供了文件上传功能,包括文件大小限制、多文件上传等。 9. **日志和许可证**:在提供的LICENSE和NOTICE文件中,可以看到Tapestry 5.2.6遵循的开源许可协议,以及其依赖的其他...

    Tapestry5使用文档

    ### Tapestry5 使用文档知识点详解 #### 一、项目架构 **Tapestry5 的项目架构** 是理解其工作原理的基础。以下是对架构各部分的详细介绍: 1. **src项目类文件** - `com.xyst.base` 基类文件: - **...

    Enjoy Web Dev With Tapestry

    4. **案例四:文件上传与下载**——介绍如何利用Tapestry处理文件上传请求以及提供安全的文件下载服务。 #### 结语 综上所述,《Enjoy Web Dev With Tapestry》不仅提供了Tapestry框架的基本介绍和使用方法,还...

    Tapestry字典

    文件上传下载(HandlingFileDownloadsandUploads) **6.1 源形页面显示图片** 在页面中展示上传的图片,需要处理图片的存储路径和URL。 **6.2 上传文件** Tapestry提供了文件上传组件,支持单文件或多文件上传,...

    tapestry4.0简易教程

    #### 六、文件上传下载(Handling File Downloads and Uploads) **6.1 源形页面显示图片** - **概念理解:** 在网页上直接展示图片。 - **具体实践:** 使用`&lt;img&gt;`标签,并为其提供图片的URL。 **6.2 上传文件**...

    Tapestry字典0.1.pdf

    - **实现**: 使用`&lt;tapestry:fileInput&gt;`标签来实现文件上传功能。 - **示例**: `&lt;tapestry:fileInput id="upload" value="${file}"&gt;` #### 七、使用公共层 (Providing a Common Layout) **7.1 公共层基础程序** -...

    Tapestry.5.Building.Web.Applications.pdf

    - **文件上传功能**:支持用户上传文件,并进行必要的验证和处理。 - **分页数据展示**:对大量数据进行分页处理,优化用户体验。 - **多语言支持**:通过国际化配置,使应用程序支持多种语言环境。 #### 五、最佳...

    Tepestry5.2 source源码

    11. **上传组件**:`tapestry-upload`模块提供了文件上传功能,方便用户处理表单中的文件提交。 12. **学习资源**:`tapestry-tutorial1`可能是Tapestry5的教程项目,指导开发者逐步学习和掌握Tapestry5的使用。 ...

    Spring开发文档

    Spring开发文档主要涵盖Spring 3.1 MVC框架的多个方面,包括核心思想、特点、入门示例、参数传递、视图解析、拦截器、类型转换、JSON数据处理、文件上传、国际化与本地化以及JSR303验证。以下是这些知识点的详细说明...

    google-api-services-drive-v2-rev119-1.16.0-rc.zip

    5. 实现文件版本控制,回滚到旧版本。 6. 批量操作,减少网络请求,提高性能。 【描述】"tapestry-routing.zip" 提及的"Tapestry路由"是指Apache Tapestry框架中的URL路由机制。Tapestry是一个开源的Java Web开发...

    wicket文档

    如何在表单中添加文件上传功能。 - **7.3.2 完整的结果** 展示最终的效果。 **7.4 一个简单的数据列表程序** 介绍了如何使用Wicket来构建一个基本的数据列表程序。 以上是对给定文档中的主要知识点进行了详细...

    J2SE讲解文档

    分页、文件上传、图表打印和报表生成是常见的Web应用功能。 远程方法调用(RMI)、企业级JavaBean(EJB)和Web服务是Java的分布式计算技术。RMI用于Java对象间的远程通信,EJB提供了一种在Java EE服务器中部署和...

    java面试复习总结.doc.pdf

    - 提供类级别的拦截器,许多功能如异常处理、文件上传、验证等都是通过拦截器实现的。 - 支持多种表现层技术如JSP、FreeMarker、Velocity等。 - 缺点是配置文件多且繁琐,性能上如值栈取值可能较差,适合稳定系统...

    java面试复习总结.doc.docx

    - Struts2的许多功能,如异常处理、文件上传和验证,都是通过拦截器实现的,这些拦截器可配置且可重用。 - 支持多种表现层技术,如JSP、FreeMarker和Velocity。 - OGNL用于快速访问值栈中的数据和调用值栈中的...

    seasar2.3主框架

    在描述中提到的“lib中缺少的两个文件已经分开上传”,这可能指的是Seasar2运行时所依赖的某些库文件没有包含在原始的压缩包中,用户需要额外下载这两个文件来确保框架的完整性和正常运行。由于上传文件大小限制为5...

    Spring中文帮助文档

    在表单中处理分段文件上传 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...

Global site tag (gtag.js) - Google Analytics