freemarker导出word的一些问题

本文详细解析了使用Freemarker导出Word文档时遇到的两大常见异常:一是XML转FTL过程中因Word样式导致的ParseException,解决办法是清理样式;二是模板参数缺失引发的评估为null或缺失的问题,确保所有模板参数正确赋值即可避免。

首先,了解下freemarker导出word的流程:

参考https://www.cnblogs.com/llfy/p/9303208.html

异常一:

freemarker.core.ParseException: Encountered "<" at line 3, column 3011 in niuwode.ftl.
Was expecting one of:
    <STRING_LITERAL> ...
    <RAW_STRING> ...
    "false" ...
    "true" ...
    <INTEGER> ...
    <DECIMAL> ...
    "." ...
    "+" ...
    "-" ...
    "!" ...
    "[" ...
    "(" ...
    "{" ...
    <ID> ...

原因是.xml转成.ftl时,${name}中间多了很多word的样式,

例如:${</w:t></w:r><w:r><w:rPr><w:lang w:val="zh-CN"/></w:rPr><w:t>name</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/><w:lang w:val="zh-CN"/></w:rPr><w:t>}

删除样式后,变为${name}即可。

异常二:

The following has evaluated to null or missing:

这是因为模板中用到的参数,在给模板赋值时找不到,为null

 

转载于:https://www.cnblogs.com/xc-chejj/p/10722307.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值