我的代码是这样写的
public word() { System.out.println("=======begin=======");
configuration = new Configuration();
configuration.setDefaultEncoding("UTF-8");}
public void createDoc(Map datamap, String path, String filename,
HttpServletResponse response) {
TemplateLoader templateLoader = null;
Template template = null;
try {
templateLoader = new ClassTemplateLoader(model.class);
configuration.setTemplateLoader(templateLoader);
template = configuration.getTemplate(path,"UTF-8");
template.setEncoding("UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
Writer out = null;
try {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
response.setHeader("content-disposition",
"attachment; filename=" + new String(filename.getBytes("GB2312"), "ISO-8859-1"));
out =new BufferedWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"), 10240);
} catch (Exception e) { e.printStackTrace();
}
try {
template.process(datamap, out);
out.close();
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
freemarker 生成word时 数据已经通过template注入完成了,然后输出流完成了,但是文件没有被生成
答案:2 悬赏:50 手机版
解决时间 2021-03-15 16:38
- 提问者网友:爱唱彩虹
- 2021-03-15 07:09
最佳答案
- 五星知识达人网友:猎心人
- 2021-03-15 08:24
应该是没有成功生成,内部代码里还包含了word无法识别的代码块,所以无法打开,你可以用记事本查看源代码,freenarker转换的word源代码都是xml格式
全部回答
- 1楼网友:长青诗
- 2021-03-15 08:40
支持一下感觉挺不错的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯