Freemarker. Как вызвать java-метод в template из переданного java Document в качестве модели?

151
25 марта 2019, 04:40

Freemarker. Передаю в качестве модели Java-объект класса и привязываю его к "doc". В шаблоне пытаются вызвать любой метод, даже самый простой .toString(), получаю всегда NonMethodException

fr.opensagres.xdocreport.core.XDocReportException: freemarker.core.NonMethodException: For "...(...)" callee: Expected a method, but this has evaluated to a sequence+hash (wrapper: f.e.dom.NodeListModel): ==> doc.toString

Пример вызова из шаблона:

${doc.toString()}

Как вызвать java-метод в template из переданного java-объекта в качестве модели?

Answer 1
public class DocumentTools{
 public static String method(Document doc, ...){
 // вызываем метод doc
}
}

передаём в качестве параметров в отчёт doc - объект Document, docTools - объект DocumentTools

в шаблоне

${docTools.method(doc, ...)}
READ ALSO
Рациональное использование LoadingCache

Рациональное использование LoadingCache

Есть некоторое действие, которые вызывается пользователемНужно сделать так, чтобы это действие можно было юзать раз в N секунд

158
Подружить Java и Python

Подружить Java и Python

заранее извиняюсь за столь общий и размытый вопросСобираемся писать приложение (некоммерческое) для платформы Android, хотим прикрутить к нему...

132
После удаления поля, меняется порядок

После удаления поля, меняется порядок

Ввожу команду и она пишется в репозиторий, и в бдid: 1 name:

218
Как записывать и читать отдельные биты из байта

Как записывать и читать отдельные биты из байта

Допустим у меня есть байт, и в нем я хочу хранить 8 boolean'овКак мне читать и записывать отдельные биты в байт? Пожалуйста без битсета, я хочу понять...

154