创建自定义方法时,我实现了TemplateMethodModelEx并返回SimpleSequence对象。 根据API,我应该使用这个构造函数:
SimpleSequence(ObjectWrapper wrapper)
因为我将incompatibleImprovements设置为2.3.24,所以doc说我可以简单地使用Configuration实例的getObjectWrapper()。我的问题是在实现TemplateMethodModelEx时,我无权访问当前配置,除非我将cfg传递给方法的构造函数。然后root.put看起来像:
root.put("getMeList", new GetMeListMethod(cfg));
这对我来说很奇怪,我想知道构造这种SimpleSquence模型的权利是什么,并且有正确的方法来获取默认的对象包装器。
非常感谢
答案 0 :(得分:0)
您应该传递ObjectWrapper
作为构造函数参数。 (它与incompatibleImprovements
2.3.24无关。)任何TemplateModel
创建其他TemplateModel
- s(如TemplteSequenceModel
- s,TemplateHashModel
- s,{{ 1}} - s)曾经像那样工作。这通常不明显,因为它们是由 TemplateMethodModel
创建的。如果您手动执行ObjectWrapper
- s(这很好),那么您将面对这一事实。