2016 - 2024

感恩一路有你

使用WEBWORK实现文件上传方法

浏览量:1938 时间:2024-07-27 17:10:59 作者:采采

WEBWORK是一个灵活功能强大的J2EE Web框架,它完全从web层脱离出来,致力于组件化和代码重用。除了常见的功能,WEBWORK还可以利用其简洁的设计来实现文件上传功能。

利用ognl实现资料绑定

WEBWORK利用ognl实现的资料绑定是非常实用的功能。它能够避免繁琐调用和对象setter,并且无需任何多余的配置文件。再加上转换器的功能,我们可以用一个业务对象从前台一直串到后台,无需考虑String转化、不需要DTO、不需要FormBean。

使用数据绑定实现文件上传

如果能把常见的文件上传也用数据绑定来实现,那就更加完美了。使用WEBWORK的文件上传拦截器,Action再也不需要了解任何web信息,只需要对具体的Object进行操作。需要对用户上传的文件进行操作时,只需调用getFile方法。

配置文件上传拦截器

在webwork2.1.5以前,已经有详细介绍文件上传问题的内容。在2.1.5以后的版本中,这个拦截器被加入了正式release版本里面,具体拦截器为。

示例代码

下面是一个使用WEBWORK实现文件上传的Action示例代码:

public class FileUploadAction extends ActionSupport {
    private File file;
    public void setFile(File file) {
          file;
    }
    public String execute() throws Exception {
        // 处理上传文件
        return SUCCESS;
    }
}

需要注意栏位名称和Action的属性同名即可。剩下的事情就是配置拦截器:

lt;interceptorsgt;
    lt;interceptor name"fileUpload" class""/gt;
    lt;interceptor-stack name"defaultStack"gt;
        lt;interceptor-ref name"fileUpload"/gt;
        lt;interceptor-ref name"defaultStack"/gt;
    lt;/interceptor-stackgt;
lt;/interceptorsgt;
lt;action name"fileUploadAction" class""gt;
    lt;result name"success"gt;success.jsplt;/resultgt;
lt;/actiongt;

选择合适的文件上传lib

WEBWORK并没有自己实现文件上传功能,而是封装了几种通用的File Upload lib,包括pell、cos和apache common三种实现。

pell是oreilly的包,其功能最全面,也是许多人喜欢使用的文件上传lib。apache common是apache的common中的一个文件上传工具。webwork的封装提供了一个通用的访问接口,在中可以配置具体使用哪个lib。

推荐使用pell作为文件上传lib,因为它能正确获取中文文件名称。apache common会将中文文件名称改为,而cos会产生乱码。需要注意的是,webwork的封装丧失了cos的一些功能,所以如果需要使用cos的特殊功能,建议单独使用cos。

自定义文件存储方式

在WEBWORK的文件上传拦截器功能中,它提供的File只是一个临时文件,Action执行之后会被自动删除。因此,你必须在Action中自行处理文件的存储方式,可以选择保存到服务器的某个目录或者保存到数据库中。如果选择保存到服务器的目录,需要自己处理文件同名的问题,而cos包已经提供了文件重名的自动重命名规则。

总结来说,利用WEBWORK实现文件上传功能可以大大简化开发过程,通过合适的配置和选择合适的文件上传lib,可以轻松完成文件上传功能的开发。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。