загрузить файл в struts2, используя ajax - PullRequest
7 голосов
/ 11 марта 2011

Как я могу загрузить файл в стойках 2, используя ajax

Ответы [ 2 ]

9 голосов
/ 11 марта 2011

Загрузите плагин jQuery Struts2 и делайте так, как вы обычно делаете со Struts2.

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
  <head>
    <sj:head/>
  </head>
  <body>
    <s:form id="form" action="AjaxTest">
      <s:file name="myFile" ... />
      <sj:submit value="Submit Form" targets="myAjaxTarget"/>
    </s:form>
    <div id="myAjaxTarget">
    </div>
  </body>
</html>
7 голосов
/ 01 июля 2011

Если вы хотите вернуть данные json клиенту, вы можете получить сообщение об ошибке, что появится диалоговое окно загрузки файла для загрузки json в виде текстового файла. Я использую плагин struts2-json, чтобы исправить эту ошибку, просто добавьте следующий конфиг к вашему действию в struts.xml

<param name="contentType">text/plain</param>

мой образец

        <action name="uploadFile" class="fileUploadAction">
            <interceptor-ref name="fileUploadStack"/>
            <result name="input">/WEB-INF/pages/uploadForm.jsp</result>
            <result name="success" type="json">
                 <param name="excludeProperties">
                         fileStoreManager, file
                 </param>
                 <param name="contentType">text/plain</param>
            </result>
            <result name="cancel" type="redirectAction">mainMenu</result>
        </action>
...