我遇到了使用spring webflow 1.0和struts 1.3上传文件的问题。Struts - 上传文件
的JSP是这样的:
<html:form action="/flowAction" method="post" enctype="multipart/form-data">
<!-- snip -->
<html:file property="file" name="attachDocumentsForm" size="50"/>
<!-- snip -->
</html:form>
的形式是这样的:
public class AttachDocumentsForm extends SpringBindingActionForm {
// note, SpringBindingActionForm extends struts' ActionForm
private FormFile file;
//snip
}
现在,我的问题是,当我提交表单,该file
场总是null
。表单上的其他字段被正确填写,如果我深入了解RequestContext
,我可以发现文件被深埋在那里的一些数据结构中。
这里是可怕丑陋的方式,我可以在附件获得:
// 'context' is the RequestContext
ServletExternalContext servletExternalContext = (ServletExternalContext) context.getExternalContext();
ActionForm form = (ActionForm) servletExternalContext.getRequest().getAttribute("actionForm");
FormFile file = (FormFile) form.getMultipartRequestHandler().getFileElements().get("file");
我已经注意到,我的窗体上的MultipartRequestHandler
是null
,我怀疑这可能是部分问题,但我已经尝试用CommonsMultipartRequestHandler
实例填充它无济于事。
我需要做些什么才能让file
字段正确填充?
你不应该能够得到从ActionForm中访问该文件,使用(FormFile)form.getFile()? – 2009-10-01 02:37:42