首先呢,先说一下制作freemarker模板步骤,
1. 在WPS上写出所要的下载的word格式当做模板
2. 把模板内不固定的内容(例:从数据库读取的信息)写成123或者好代替的文字标注
3. 把固定模板另存为htm或者html格式
4. 用文本编辑器(例:EditPlus,HBuilder等工具)打开模板,并将标注内容替换成 ${要获取的字段} 这种格式,类似于传参数,可以传多个参数
5. 将修改后的模板保存,并将后缀名改为ftl格式。至此 我们的freemarker模板就大功告成了
PS: 最好将建好的模板放到文件夹内,方便统一管理。
如果是web项目,模板之类的最好放在/WEB-INF/下,不是web项目的话最好放在classpath下。
其次,就是将制作好的模板导入到项目里的步骤了
1. 第一步肯定是把制作好的模板放到指定的路径并且导入freemarker的jar包,这个是毋庸置疑的吧
2. 我们需要在Spring配置文件内加上以下这么一段代码
0
GBK
zh_CN
3. 接下来我们就要编写我们的下载模板类啦(在这里我采用了数据库加载模式加载我们的Freemarker模板文件)
如上图所示 我们的调用模板也就写好啦,接下来的就是方法的调用和添加参数问题了
4. 方法的调用和添加参数
添加参数:
private void getData(MapdataMap) {
String param1= " 参数一 ";
String param2= " 参数二 ";
... 参数有几个就创建几个
dataMap.put("param1", param1);
dataMap.put("param2", param2);
... 参数有几个就添加几个
List> list = new ArrayList>();for (int i = 0; i < list.size(); i++) {
Map map = new HashMap();
map.put("number", i);
map.put("content", "内容"+i);
list.add(map);
dataMap.put("list", list);
}
}
方法调用:
public void downLoad(Map dataMap)throwsException {
getData(dataMap);
String templateName= "pinggu.ftl"; //模板文件名
String filePath = "D:/downLoad"; //输出文档路径
String fileName = "评估意见.docx"; //输出文件名称
String modelPath = request.getSession().getServletContext().getRealPath("/") + "WEB-INF/template/ftl/"; //模板文件路径
CancerUtil.createDoc(dataMap,fileName,templateName,filePath,modelPath);
}
至此 我们的实现下载word文档格式功能就完成了 下一章呢,我想写一下我对加载freemarker模板路径三个方法的理解和认识,希望大家指出我的错误