(F1)Tapestry Upload:Tapestry Upload Component

本文翻译出处 http://tapestry.apache.org/tapestry5/tapestry-upload/
本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。
chinajavawolf  
Tapestry 上传组件
Tapestry 提供了一个基于 Jakarata Commons FileUpload 的文件上传组件。
用法
Upload 组件支持默认值的绑定(基于 id )和验证。
组件模板
  1. <t:form>  
  2.        <t:errors/>  
  3.        <input t:type="upload" t:id="file" validate="required"/>  
  4.        <br/>  
  5.        <input type="submit" value="Upload"/>  
  6.    t:form>  
   
这里,因为 value 参数没有被绑定,这个组件使用它的容器的文件属性(因为组件的 id ”file” )。如果你想要上传一个不同的属性,可以绑定 value 参数或改变组件的 id.
 
页面类
  1. public class UploadExample   
  2.     {   
  3.         private UploadedFile _file;   
  4.     
  5.         public UploadedFile getFile()   
  6.         {   
  7.             return _file;   
  8.         }   
  9.     
  10.         public void setFile(UploadedFile file)   
  11.         {   
  12.             _file = file;   
  13.         }   
  14.     
  15.         public void onSuccess()   
  16.         {   
  17.             File copied = new File("/my/file/location/" + _file.getFileName());   
  18.                
  19.             _file.write(copied);   
  20.         }   
  21.     }   
   
潜在的问题
这个通用的文件上传库使用CommonsIO文件清除器服务在他们不再需要的时候移除临时文件。这个服务创建了一个线程来完成这个工作。如果commons-io库被共享在多个应用中( 例如增加服务器CLASSPATH )。它可能为一个应用过早的对另一个应用终止这个线程并引发错误。( Resource Cleanup 工作组进行更多的讨论
技术上文件清除服务不是Tapestry Upload必需的(在请求结尾处删除临时文件)。然而目前不可能去废除它(改进请求已经作为 FILEUPLOAD-133 提出)。

你可能感兴趣的:(Tapestry)