struts2 word、excel文件的下载

struts2 word、excel文件的下载
后台action
因为我在数据库中的文件名中存取的是,一段路径+文件名称。所以我第一步是要从该路径中取出文件的名称。
以“/”截取字符
String[] strings=实体类.getFilename().split("/");
for (int i = 0; i < strings.length; i++) {
判断截取的字符中是否含有“.”。
if(strings[i].contains(".")){
存在的话就获取到文件的名称了。
this.setFileName(strings[i]);
}
}
return "success"; 到配置文件中。
<action name="FileDownload" class="org.action. FileDownloadAction"
method="doFileDownload">
<result name="success"   type="stream">
<param name="contentType">application/msword,application/vnd.ms-excel</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
                                 attachment作用是:弹出的那个 保存,取消的框。
<param name="bufferSize">4096</param>  
<param name="inputName"> downLoadFile【 封装好的方法。即:FileDownloadAction中的getDownLoadFile()方法 </param>
                          读取到这里后在进入FileDownloadAction中的   getDownLoadFile()方法。 【getDownLoadFile()Struts2封装好的方法】
                public InputStream getDownLoadFile() throws IOException {
try {
String tmpName = filePath + this.getFileName();
File file = new File(tmpName);
if(file.exists()) {
InputStream inputStream=new FileInputStream(filePath + this.getFileName());
return inputStream;
}
else {
HttpServletResponse response=ServletActionContext.getResponse();
response.sendRedirect("fileNotFound.jsp");
}
} catch (Exception e) {
LOG.info("file download error!");
e.printStackTrace();
}
return null;
        }
</result>
</action>
以上就是我在做文件下载时的一些问题。。如有疑问欢迎提出。。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Struts2导出Word文件的步骤: 1.添加poi-ooxml和poi-ooxml-schemas依赖包到项目中。 2.创建一个Word模板文件,可以使用Microsoft Word或其他工具创建。在模板文件中,使用占位符来标记需要替换的文本,例如:${name}。 3.创建一个Action类,该类将负责生成Word文件。在该类中,使用POI库来读取Word模板文件,并将占位符替换为实际的文本。最后,将生成的Word文件作为响应发送给客户端。 下面是一个示例Action类的代码: ```java import java.io.FileInputStream; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import com.opensymphony.xwork2.ActionSupport; public class ExportWordAction extends ActionSupport { private static final long serialVersionUID = 1L; private InputStream inputStream; private String fileName; public String execute() throws Exception { // 读取Word模板文件 XWPFDocument doc = new XWPFDocument(new FileInputStream("template.docx")); // 替换占位符 Map<String, String> map = new HashMap<String, String>(); map.put("name", "张三"); map.put("age", "25"); for (XWPFParagraph p : doc.getParagraphs()) { for (XWPFRun r : p.getRuns()) { String text = r.getText(0); if (text != null) { for (Map.Entry<String, String> entry : map.entrySet()) { if (text.contains(entry.getKey())) { text = text.replace(entry.getKey(), entry.getValue()); r.setText(text, 0); } } } } } // 输出Word文件 fileName = "output.docx"; inputStream = doc.generateInputStream(); return SUCCESS; } public InputStream getInputStream() { return inputStream; } public String getFileName() { return fileName; } } ``` 4.在struts.xml文件中配置Action类和结果类型: ```xml <action name="exportWord" class="com.example.ExportWordAction"> <result name="success" type="stream"> <param name="contentType">application/vnd.openxmlformats-officedocument.wordprocessingml.document</param> <param name="inputName">inputStream</param> <param name="contentDisposition">attachment;filename="${fileName}"</param> <param name="bufferSize">1024</param> </result> </action> ``` 5.在JSP页面中添加一个链接或按钮,以触发Action类的执行: ```html <a href="exportWord.action">导出Word文件</a> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值