java编程使用freemarker导出word问题
使用参考:http://freemarker.foofun.cn/toc.html
需求:提取一些必要的字段信息写入到固定的word模版中。
1、freemarker中遍历集合
①遍历list集合
<#list mylist as obj> ${obj.name} </#list>
②遍历map集合
<#list myMap?keys as key> ${key} ${myMap[key]} </#list>
2、判断字符串非空
<#if key??> myMap[key] <#else> 空 </#if>
3、遍历的索引
使用:"别名_index"的形式获取索引 <#list myList as obj> ${obj_index} </#list>
4、html中textarea提交的内容换行符转换
注意:如果不转换,则word会识别为空格符
freemarker中的换行符为:<w:br />
在构建数据模型的时候使用替换的方式将"\n"替换为“<w:br />”
private String replaceEnter(String str) { String reStr = "<w:br />"; if (StringUtils.isNotBlank(str)) { str = str.replaceAll("\n", reStr); } return str; }
5、对于html特殊字符,例如<、>等,转义方式为${str?html}
6、对应js特殊字符串,如\n、" 等(\n会显示成一个空格),转义方式为${str?js_string}
以上为本次学习使用过程中遇到的一些小问题,需解决的知识。
2018年8月30日
初心回归,时光已逝!