私は自分のエンティティにいくつかのビルダー関数を持っていますが、これはfreemarkerで処理できません。Freemarker - 豆にのみゲッターを使用します。
例えば、私は以下の豆/エンティティを持っている:
public class User{
private Long number;
public Long getNumber(){
return this.number;
}
public void setNumber(Long number){
this.number = number;
}
public User number(Long number){
this.number = number;
}
}
そして、私のFreeMarkerのテンプレートは次のようなものです:
次のように私はその場で処理する<span>${user.number}</span>
:
User user = getUser();
Map<String, Object> context = new HashMap<>();
contaxt.put("user", user);
Configuration configuration = new Configuration(Configuration.VERSION_2_3_0);
configuration.setObjectWrapper(new BeansWrapper(Configuration.VERSION_2_3_0));
Template t = new Template("usertpl", template, configuration);
String result = FreeMarkerTemplateUtils.processTemplateIntoString(t, model);
エンティティに「number(Long)」メソッドが含まれているため、freemarkerはこれを使用しようとします。これは実際にはセッター - それは動作していません。
は、私は私がテンプレートにゲッターを使用できることを、知っているが、
だから、私は」(私は${user.number}
は、プログラマでない人のための${user.getNumber()}
より分かりだと思うところ)テンプレートは、ユーザーが定義する必要があります別の解決策を探しています...
number(Long)
ではなく、ゲッター(getNumber()
)を使用してプロパティにアクセスするようにfreemarkerを構成する可能性はありますか?
私はようやくそれを確認するために少し時間を割いて、今働いています。ありがとう! – Indivon