2015-01-09 30 views
0

我在一個項目上工作只需要一次上傳一個文件。我正在使用struts2和jquery文件上傳插件。我看到很多例子,但我不知道如何激活jquery文件上傳功能中的struts2動作。如何在struts2中使用jquery文件上傳插件激活動作

這是我的jsp

<form id="uploadForm" action="/myapp/trading_upload.action" method="POST" enctype="multipart/form-data"> 
    <div class="row"> 
     <div class="col-sm-9"> 
      <div class="panel"> 
       <div class="panel-heading"> 
        <span class="panel-title">Upload</span> 
       </div> 
       <div class="panel-body"> 
        <div class="row"> 

         <div class="col-sm-6"> 
           <span class="btn btn-success fileinput-button"> 
            <i class="glyphicon glyphicon-plus"></i> 
            <span>Select file</span> 
            <input id="fileupload" type="file" name="files"> 
           </span> 
         </div>   
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</form> 

這是我的JS,基本上它只是jQuery的文件上傳實例代碼

$(function() { 
    $('#fileupload').fileupload({ 
     dataType: 'json', 
     url: '/myapp/trading_upload.action', 
     add: function (e, data) { 
      data.context = $('<button/>').text('Upload') 
       .appendTo(document.body) 
       .click(function() { 
        data.context = $('<p/>').text('Uploading...').replaceAll($(this)); 
        data.submit(); 
       }); 
     }, 
     done: function (e, data) { 
      consolo.log('complete'); 
      alert("complete"); 
      data.context.text('Upload finished.'); 
     } 
    }); 
}); 

這是我在struts.xml

<action name="trading_upload" class="tradingAction" method="upload"> 
    <interceptor-ref name="fileUpload"> 
     <param name="maximumSize">2097152</param> 
    </interceptor-ref> 
</action> 

這是我的交易行爲,它只是一個打印,因爲我想看到它被激活

public String upload() throws Exception { 
     System.out.println("upload"); 
     return SUCCESS; 
} 

我應該使用url:'/myapp/trading_upload.action'來激活操作嗎?但是我選擇文件後什麼也沒有發生。沒有動作被激活。提前致謝!

回答

1

最後我意識到我需要首先實現struts2上傳,然後我可以將它與文件上傳插件結合起來激活這個動作。它的工作原理