NullPointerException при загрузке файла с помощью Struts 2 - PullRequest
0 голосов
/ 19 ноября 2011

Это JSP

<s:form action="uploadfile.action" enctype="multipart/form-data" method="POST"  cssClass="bodyClass">
    <tr>
        <td>
            Image:
        </td>
        <td style="width: 200px;">
            <s:file id='image' name='uploadedfile' cssClass="formTextField"  />
        </td>
        <td>
            <input type="submit" value="Upload" class="button"/>
        </td>
    </tr>

</s:form>

Это Struts .xml

 <package name="upload" namespace="/upload" extends="struts-default">
            <action name="uploadfile" class="com.secureweb.web.upload.UploadAction">
                <result name="uploadImage">/pages/fileupload/uploadimage.jsp</result>
            </action>
    </package>

Класс действия

public class UploadAction extends ActionSupport {
    private File uploadedfile;

    public String execute() throws Exception {
        try {
           System.out.println(uploadedfile.getName());
        } catch (Exception e) {
            System.out.println(e);
        }
        return "uploadImage";
    }

    public File getUploadedfile() {
        return uploadedfile;
    }

    public void setUploadedfile(File uploadedfile) {
        this.uploadedfile = uploadedfile;
    }
}

Библиотеки в моем проекте

 commons-beanutils-1.7.0.jar
    commons-lang-2.3.jar
    displaytag-1.2.jar
    displaytag-export-poi-1.2.jar
    displaytag-portlet-1.2.jar
    log4j-1.2.14.jar
    pljava.jar
    postgresql-8.3-603.jdbc4.jar
    postgresql-8.3-604.jdbc3.jar
    cos.jar

    Struts 2 2.1.8 Basic- commons-io-1.3.2.jar
                          commons-fileupload-1.2.1.jar
                          commons-logging-1.0.4.jar
                          freemarker-2.3.15.jar
                          ognl-2.7.3.jar
                          struts2-core-2.1.8.1.jar
                          xwork-core-2.1.6.jar
    Then there is persistance.jar of EJB
    And there is also Hibernate Library.

Нет другого

Результатом является NullPointerException, поскольку атрибут загруженного файла равен нулю. Загрузка файла не работает правильно. Почему эта переменная всегда получает значение NULL. Моя ОС - Ubuntu Linux 11.4, веб-сервер - Apache Tomcat 6. IDE - Netbeans.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2011

Я рекомендую вам добавить перехватчик FileUpload в стек перехватчиков вашего действия. Вы можете сослаться на документы ниже, чтобы узнать, как:

http://struts.apache.org/2.0.6/docs/file-upload-interceptor.html

http://struts.apache.org/2.0.14/docs/file-upload.html

http://www.mkyong.com/struts2/struts-2-file-upload-example/

Недавно я работал над проектом с загрузкой файлов на Tomcat 6.0, Firefox и Chrome с использованием перехватчика FileUpload с ограничениями на NetBeans 6.9, и все было в порядке. Пожалуйста, продолжайте обновлять свой результат.

0 голосов
/ 19 ноября 2011

Возможно, потому что в Struts 2 уже реализованы полные возможности загрузки файлов без необходимости выполнять всю работу вручную.

Пожалуйста, посмотрите файл загрузки документов и используйте то, что уже дает вам фреймворк.

Вот несколько дополнительных вопросов:

  • Если вы не установили тему по умолчанию "simple", HTML-код, сгенерированный формой, будет недействительным; тема по умолчанию испускает элементы ввода формы внутри строк / ячеек таблицы.
  • Атрибут "action" тега <s:form> должен быть именем действия без суффикса .action.

После устранения этих проблем ваш код работает как есть. Вы модифицировали стек перехватчиков по умолчанию?

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