Struts - Загрузка файлов - PullRequest
       16

Struts - Загрузка файлов

5 голосов
/ 01 октября 2009

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

Ответы [ 2 ]

1 голос
/ 22 декабря 2009

Я думаю, вы должны настроить сервлет-диспетчер пружин: http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html#mvc-multipart-resolver

0 голосов
/ 06 ноября 2009

Добавьте поле с именем file типа FormFile в ActionForm (поле, на которое указывает attachDocumentsForm) вместе с методами доступа.

Доступ к загруженному файлу можно получить, позвонив по номеру form.getFile().

.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...