O código de implementação da função de download do arquivo STRUTS2 é o seguinte:
Arquivo de ação
classe pública DownloadLoadAction Extends Actionsupport { / ** * * / private estático final serialversionuid = 5879762231742395104l; private string filename; // o nome do arquivo solicitado pelo usuário private string inputPath; // o caminho para baixar o recurso (definido no arquivo de configuração do struts) public void SetInputPath (string inputPath) {this.InputPath = inputPath; } public string getInputPath () {return inputPath; } public void setFilename (string filename) {this.filename = filename; } public string getFilename () {return filename; } public string downloadfile () lança Exceção {servletContext context = servletActionContext.getServletContext (); String downloaddir = context.getRealPath ("/upload"); String downloadfile = context.getRealPath (inputPath); // impedem que os usuários solicitem recursos inseguros se (! DownloadFile.Startswith (DownloadDir)) {return null; } retornar "Download_success"; } /** Obtenha o recurso de fluxo de entrada* / public inputStream getInputStream () lança exceção {string path = inputPath + file.separatorchar + new string (filename.getbytes ("ISO-8859-1"), "utf-8"); retornar servletActionContext.getServletContext (). getResourceasStream (caminho); } /** Obtenha o nome do arquivo padrão do arquivo ao baixar* / public String getDownloadFilename () {String DownloadFileName = FileName; tente {downloadfilename = urlencoder.encode (downloadfilename, "ISO-8859-1"); } catch (não suportadoEncodingException e) {e.getMessage (); E.PrintStackTrace (); } retornar downloadfilename; }}Arquivo JSP:
<li> <a href = "<%= caminho%>/download_downloadAction_downloadfile.action? FileName = dwr.jar"> dwr.jar file em </a> </li> <li> <a href = "<%= path%>/download_down_downloadfile.action? FilleName = strutorial. </li>
struts.xml:
<ação name = "Download _*_*" Method = "{2}"> <param name = "inputpath">/upload </param> <!-Tipo de resultado definido para stream-> <nome do resultado = "download_success" type = "stream"> <!-MIME TYPE-> <MEARDE = "contentType"> Applicat/octort-sTren "> <! Obtenha o recurso de fluxo de entrada (o método getInputStream é definido na ação e o tipo de retorno é inputStream)-> <param name = "inputName"> inputStream </am Param> <!-Defina o arquivo com anexos para obter dinamicamente o nome do arquivo (define o método getDownloadFilename em ação)-> name = "ContentDisposition"> Appion; filename = "$ {DownloadFilename}" </aman> <!-Defina o tamanho do buffer-> <param name = "buffersize"> 2048 </param> </sould> </action>O acima exposto é o conteúdo relevante da implementação do Struts2 da função de download de arquivos Compartilhamento de código (Nome do arquivo Transcoding em chinês) Introduzido a você pelo editor. Espero que seja útil para todos!