解决freemarker数组中的对象属性获取不到

简介: 解决freemarker数组中的对象属性获取不到

1. 问题现象

使用Freemarker写入模板的时候,遍历List的时候发现对象中的首字母大写和带下划线的时候就会报错


The following has evaluated to null or missing


FTL stack trace ("~" means nesting-related):


意思就是说${list.Name}内容是空的,读取不到。数组内的属性名首字母大写或者包含驼峰的属性均会报错。


freemarker写入模板时不认识list里面中的Java对象属性


2. 解决方法

freemarker生成模板接口有两种。默认方法中使用[ObjectWrapper]参数是ObjectWrapper.SIMPLE_WRAPPER型的,但是在我们的情况下需要另一种类型,也即:ObjectWrapper.BEANS_WRAPPER,也就是说自定义扫描JAVABean类型的对象:


//生成代码文件
FileOutputStream fos = new FileOutputStream(newFile);
Writer out = new BufferedWriter(new OutputStreamWriter(fos, "utf-8"), 10240);
try {
    //默认freemarker生成模板的方法,无法识别 List中的JAVA对象属性
    //template.process(dataMap, out);
    //修改后的方法
   template.process(dataMap, out, ObjectWrapper.BEANS_WRAPPER);
} catch (Exception e) {
   e.printStackTrace();
} finally {
   out.close();
}


目录
相关文章
|
存储 监控 安全
解锁ThreadLocal的问题集:如何规避多线程中的坑
解锁ThreadLocal的问题集:如何规避多线程中的坑
880 0
|
前端开发 开发者 容器
|
负载均衡 架构师 Java
详细讲解OpenFeign的使用姿势!
学会使用Feign最贱优雅地调用服务
23537 9
详细讲解OpenFeign的使用姿势!
|
应用服务中间件 Linux 网络安全
Linux 安装 Nginx 并配置为系统服务(超详细)
Linux 安装 Nginx 并配置为系统服务(超详细)
|
负载均衡 Ubuntu 应用服务中间件
|
测试技术
IDEA创建单元测试与测试覆盖率统计
IDEA(IntelliJ IDEA)不仅支持快速基于当前类创建单元测试,还支持代码测试覆盖率的统计,以及生成报告和标记测试运行命中的代码。
3947 0
IDEA创建单元测试与测试覆盖率统计
|
缓存 自然语言处理 Java
详解FreeMarker Template:在Spring Boot中实现动态内容生成
详解FreeMarker Template:在Spring Boot中实现动态内容生成
2494 13
|
设计模式 缓存 前端开发
什么是幂等性?四种接口幂等性方案详解!
本文深入分布式系统中的幂等性问题及其解决方案,涵盖数据库唯一主键、乐观锁、PRG模式和防重Token等方法,关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
什么是幂等性?四种接口幂等性方案详解!
|
关系型数据库 MySQL Linux
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
在Linux系统中使用tar.xz压缩包安装MySQL数据库的详细步骤。包括下载MySQL压缩包,解压到指定目录,创建mysql用户和组,设置目录权限,初始化MySQL,配置my.cnf文件,启动服务,以及修改root用户密码。此外,还提供了如何设置Windows远程登录MySQL服务器的方法。
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
|
Java
FreeMarker - 四种变量的用法
FreeMarker - 四种变量的用法
725 1