I have a class like this.
public class User { public String username; public String age; }
When i use freemarker.
${user.username!}
I didn’t get anything.
But if I change the class like this
public class User { public String username; public String age; public String getUsername() { return username; } }
I can get value.
How to use bean without get and set in freemaker?
Because I have too many class without get and set.
I try lombok but it’s not what I want.
Advertisement
Answer
By default freemarker only exposes the JavaBean properties and public methods.
But you can configure the ObjectWrapper to expose all expose public, non-static fields:
Configuration cfg = new Configuration(Configuration.VERSION_2_3_27); DefaultObjectWrapperBuilder wrapperBuilder = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_27); wrapperBuilder.setExposeFields(true); cfg.setObjectWrapper(wrapperBuilder.build());