Struts2文件上传配置与错误处理

需积分: 3 2 下载量 198 浏览量 更新于2024-09-28 1 收藏 92KB DOC 举报
"关于Struts2框架的常用资料和实践指南,包括文件上传、拦截器配置以及错误处理策略。" 在Struts2框架中,文件上传是一个常见的需求,它提供了内置的拦截器来处理这一功能。Struts2的文件上传拦截器(`fileUpload`)使得开发者能够轻松地对上传文件进行过滤和大小限制。为了使用这个拦截器,我们需要在Action的配置中添加相应的设置。例如,下面的配置示例展示了如何在Action中配置文件上传: ```xml <action name="upload" class="com.annlee.upload.UploadAction"> <interceptor-ref name="fileUpload"> <param name="allowedTypes">image/bmp,image/gif,image/jpg</param> <param name="maximumSize">2000000</param> </interceptor-ref> <interceptor-ref name="defaultStack"/> <param name="savePath">/</param> <result>/common/succ.jsp</result> <result name="input">/cos_fileupload/fileupload.jsp</result> </action> ``` 在这个配置中,`allowedTypes`参数定义了允许上传的文件类型,如图像格式(bmp、gif、jpg),而`maximumSize`则设定了上传文件的最大尺寸(以字节为单位,这里为2MB)。`interceptor-ref`标签引用了默认拦截器栈`defaultStack`,确保了所有基本的拦截器服务都可用。 当文件上传失败时,Struts2框架会自动重定向到`input`逻辑视图。为了处理这种情况,需要为Action配置一个名为`input`的结果,这通常是一个显示错误信息的页面。在页面上,可以通过Struts2的`<s:fielderror/>`标签来显示错误信息。 为了提供更友好的用户体验,我们可以自定义错误消息。例如,对于文件过大或不允许的文件类型的错误,可以在国际化资源文件中添加以下键值对: - `struts.messages.error.file.too.large` - `struts.messages.error.content.type.not.allowed` 这些错误消息会被自动替换,从而提供定制化的错误提示。此外,如果上传失败有其他原因,可以找到并替换对应的错误关键字`struts.messages.error.uploading`,以提供更具体的错误信息。 如果未指定临时保存文件夹,Struts2会使用Java的标准临时文件目录,但为了控制和管理上传文件,推荐在应用中定义一个特定的保存路径,并在`savePath`参数中设置。 Struts2框架为文件上传提供了便利的处理机制,结合适当的配置和错误处理,可以实现高效且用户友好的文件上传功能。开发者还需要了解如何使用JFreeChart等库在Struts2中生成图表,这可能涉及到将数据转化为图形并在Action中处理,然后在结果页面展示。这通常是通过将生成的图表对象传递给视图,或者将数据写入到响应流中来实现的。