Java Freemarker:基于对象字段动态生成内容

Java Freemarker:基于对象字段动态生成内容,java,freemarker,Java,Freemarker,我对Freemarker是新手。我想在FTL中动态生成内容,以便它显示对象中的所有字段。在Java中,我们可以通过反射来实现这一点。在自由标记中不确定 例如: class Employee{ String name; String age; //setter and getter methods } class Organization{ String orgName; String location; //setter and getter methods. } 我想写一个通用的ftl

我对Freemarker是新手。我想在FTL中动态生成内容,以便它显示对象中的所有字段。在Java中,我们可以通过反射来实现这一点。在自由标记中不确定

例如:

class Employee{
String name;
String age;

//setter and getter methods
}

class Organization{
String orgName;
String location;

//setter and getter methods.
}
我想写一个通用的ftl文件,它将显示所有的对象字段,而不考虑数据类型

我不想写在下面。我希望它是通用的

<td><div>${employee.name!}</div></td>
<td><div>${employee.age!}</div></td>
${employee.name!}
${employee.age!}

任何帮助都将不胜感激。

employee?keys
应该为您提供JavaBeans属性名称,如果您将FM设置为不公开这些方法。。。或者,如果有,您可以使用
employee[propertyName]?is\u方法
将其过滤掉。您可以使用
employee[propertyName]
读取属性值


然而,我对一般情况下自动完成这些事情持悲观态度。总会有一些太过技术化而无法打印的属性(比如有一些仅供初学者使用的
class
),它们有一些有趣的类型,FreeMarker无法正确或根本无法转换为字符串。。。如果这种功能在您的项目中确实很重要,您可能希望使用注释标记这些属性,然后编写
TemplatMethodModelEx
,以提供名称(以及正确格式化所需的其他属性等),或者可以使用自定义的
ObjectWrapper
来实现相同的目的。

您可以使用BeanUtils将对象属性映射到映射。感谢您的帮助。