У меня проблема с загрузкой файла с использованием Spring WebFlow 1.0 и Struts 1.3.
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
было заполнено правильно?