我是一个使用 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”,没有单独的文件上传配置,因为它对我的问题没有任何影响。