从FreeMarker模板访问Java嵌套类
假设在FTL中可以作为从FreeMarker模板访问Java嵌套类,java,freemarker,Java,Freemarker,假设在FTL中可以作为MyModel访问MyModel,为什么MyModel.someData.toJson或MyModel.getSomeData().toJson()失败,原因是以下计算结果为null或缺失:MyModel.someData.toJson或以下计算结果为null或缺失:MyModel.getSomeData().toJson()?JsonModel必须是公共的,否则它的成员将不会公开。这总是一个愚蠢的错误。我认为不能在同一个文件中有两个顶级类标记为public,但没有注意到这
MyModel
访问MyModel
,为什么MyModel.someData.toJson
或MyModel.getSomeData().toJson()
失败,原因是以下计算结果为null或缺失:MyModel.someData.toJson
或以下计算结果为null或缺失:MyModel.getSomeData().toJson()
?JsonModel
必须是公共的,否则它的成员将不会公开。这总是一个愚蠢的错误。我认为不能在同一个文件中有两个顶级类标记为public,但没有注意到这实际上是一个内部类。谢谢你指出这一点。
public class MyModel {
private final com.google.gson.Gson gson = new Gson();
private final SomeData someData = new SomeData();
private class SomeData extends JsonModel() {
String text = "text";
}
private class JsonModel() {
public String toJson() {
return gson.toJson(this);
}
}
public SomeData getSomeData() {
return someData;
}
}