您所在的位置: 首页>>开发>>JAVA>>

在Struts 2中实现文件上传(4)

  • 摘要:本文给出了在Struts 2中实现文件上传具体步骤和实现的源代码,供大家参考!
  • 标签:文件  上传  Struts 2  Java

上面的出错提示是Struts 2默认的,大多数情况下,我们都需要自定义和国际化这些信息。通过在全局的国际资源文件中加入“struts.messages.error.content.type.not.allowed=The file you uploaded is not a image”,可以实现以上提及的需求。对此有疑问的朋友可以参考我之前的文章《在Struts 2.0中国际化(i18n)您的应用程序》。

实现之后的出错页面如下图所示:

清单13:自定义出错提示页面

同样的做法,你可以使用参数“maximumSize”来限制上传文件的大小,它对应的字符资源名为:

“struts.messages.error.file.too.large”。

字符资源“struts.messages.error.uploading”用提示一般的上传出错信息。

多文件上传

与单文件上传相似,Struts 2实现多文件上传也很简单。你可以将多个<s:file />绑定Action的数组或列表。如下例所示。

清单14:多文件上传JSP代码片段

< s:form action ="doMultipleUploadUsingList" method ="POST"

enctype ="multipart/form-data" >
< s:file label ="File (1)" name ="upload" />
< s:file label ="File (2)" name ="upload" />
< s:file label ="FIle (3)" name ="upload" />
< s:submit />
</ s:form >

如果你希望绑定到数组,Action的代码应类似:

清单15:多文件上传数组绑定Action代码片段

private File[] uploads;
private String[] uploadFileNames;
private String[] uploadContentTypes;

public File[] getUpload()  { return this .uploads; }
public void setUpload(File[] upload)  { this .uploads = upload; }

public String[] getUploadFileName()  { return this .uploadFileNames; }
public void setUploadFileName(String[] uploadFileName) 

{ this .uploadFileNames = uploadFileName; }

public String[] getUploadContentType()  { return this .uploadContentTypes; }
public void setUploadContentType(String[] uploadContentType) 

{ this .uploadContentTypes = uploadContentType; }

如果你想绑定到列表,则应类似:

清单16:多文件上传列表绑定Action代码片段

private List < File > uploads = new ArrayList < File > ();
private List < String > uploadFileNames = new ArrayList < String > ();
private List < String > uploadContentTypes = new ArrayList < String > ();

public List < File > getUpload()  {
return this .uploads;
}
public void setUpload(List < File > uploads)  {
this .uploads = uploads;
}

public List < String > getUploadFileName()  {
return this .uploadFileNames;
}
public void setUploadFileName(List < String > uploadFileNames)  {
this .uploadFileNames = uploadFileNames;
}

public List < String > getUploadContentType()  {
return this .uploadContentTypes;
}
public void setUploadContentType(List < String > contentTypes)  {
this .uploadContentTypes = contentTypes;
}

总结

在Struts 2中实现文件上传的确是轻而易举,您要做的只是使用<s:file />与Action的属性绑定。这又一次有力地证明了Struts 2的简单易用。

【责任编辑:火凤凰 TEL:(010)68476606-8007】


共4页: 上一页 [1] [2] [3] 4
【内容导航】
Java实用开发全集
赛门铁克诺顿误杀Windows系统文件 导致百万系统崩溃
Java类的基础教程专题
Java发展动态专题
Java编程开发手册
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有