宣传海报在什么网站做,脑叶公司手机版下载,昆明网站建设系统有哪些,wordpress大前端4.1场景#xff1a;给领导导出数据时#xff0c;需要给出一个针对专业名词的解释说明#xff0c;因此会存在有大批量的、大段的文本内容。如果直接写在代码里面#xff0c;没啥大问题#xff0c;但是大量的拼接替换、格式样式、后续修改维护等#xff0c;都不是很方便。如果… 场景给领导导出数据时需要给出一个针对专业名词的解释说明因此会存在有大批量的、大段的文本内容。如果直接写在代码里面没啥大问题但是大量的拼接替换、格式样式、后续修改维护等都不是很方便。如果有很多等大内容就更加的不方便了。因此就想使用一个模板引擎来解决这个问题最终使用了Freemarker引擎。作用很强大但我目前使用的场景仅这些。 1.引入依赖 !--引入Springboot的Freemarker依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-freemarker/artifactId/dependency2.添加yml配置
freemarker:cache: false #关闭模板缓存方便测试settings:template_update_delay: 0 #检查模板更新延迟时间设置为0表示立即检查如果时间大于0会有缓存不方便进行模板测试suffix: .ftl #指定freemarker模板文件的后缀名template-loader-path: classpath:/template/ #指定模板文件存放路径 echarset: utf-83.创建模板
在配置文件写定的模板路径下创建模板fileDescText.ftl注意模板路径、后缀 模板内容可以自定义这里用简单的一段内容代替中间的语法可以参考一下freemarker的语法即可。这里仅提供的一种思路。
1.本次提供文件夹内数据统计周期为${startTime}至${endTime}。
2.本次统计涉及部门有#list deptMap?keys as key${deptMap[key]}/#list3.本次统计的考勤数据可能存在部分工作流未审批结束从而导致数据异常。可以按需查看对应人员的详细记录核对工作流。
4.天数最小单位是0.5天次数最小单位是1次。
5.部分名词解释迟到/早退次数工作日晚于8:30或早于17:30打卡各记为1次。
这里着重要注意的就是中间的循环这个循环是将传递进来的map进行了循环通过循环key获取value值。
4.编码使用
//创建数据并调用方法
MapString, Object dataModel new HashMap();
dataModel.put(startTime, startTime);
dataModel.put(endTime, endTime);
dataModel.put(deptMap, deptMap);
putFreeMarkerFtlModel(dataModel);/*** 输出模板* param dataModel*/
void putFreeMarkerFtlModel(MapString, Object dataModel) {// 获取模板Template template cfg.getTemplate(fileDescText.ftl);// 创建输出流注意路径FileWriter fileWriter new FileWriter(directory \\说明.txt);// 渲染模板template.process(dataModel, fileWriter);// 关闭输出流fileWriter.close();}至此模板内容生成完毕并生成文件输出。有其他需要可自行调整即可。包括公共方法、内部数据编排等。