(F1)Tapestry Upload:Tapestry Upload Component

本人翻译目的是用来学习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 提出)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值