【发布时间】:2013-08-30 04:06:42
【问题描述】:
我是一个使用 struts2 文件上传的人,我的动作类包含 3 个带有 getter 和 setter 的私有文件
private File myFile;
private String myFileFileName;
private String myFileContentType;
我有一些问题要澄清
我们只传递文件作为参数并将其绑定到myFile,那么应用程序如何获取文件名和内容类型?
每当我使用 myFileVariableName + "FileName"(如果文件变量是 myFile,那么文件名变量是 myFileFileName,如果文件是 xxx,那么文件名是 xxxFileName),我会得到输出,如果我做任何更改为这种格式(即,myFileVariableName + "FileName"),它变为空。是否必须使用这种格式?我可以将其更改为我想要的任何名称吗?如果是,那怎么办?
要获取内容类型,我应该使用 jst "contentType" 或 myfileVariableName + "contentType"。也是强制性的吗?
我假设,如果我使用单独的 bean 来存储我的请求变量,所有参数都绑定到该 bean 变量。但是在文件上传的情况下,只有文件变量,即本例中的 myFile 只在 bean 中获取和设置。 fileFileName 和 contentType 为空。如果我直接在我的操作类中声明这些变量,那么我会得到值,但是每当我使用单独的 bean 时,只有 File 变量可以获取和设置,而其他两个为空。为什么?
如果我使用ModelDriven,发生同样的情况,我只能获取File变量,其他两个变量为null。为什么?
我只是在我的 struts.xml 中扩展“struts-default”,没有单独的文件上传配置,因为它对我的问题没有任何影响。
【问题讨论】: