Исключение недействительности Freemarker

#java #freemarker

Вопрос:

Я пытаюсь передать коллекцию Freemarker:

Мой внутренний класс получателя:

 @Data private class Recipient {  private String phone;  private String languageValue; }   

Мой шаблон:

 lt;#list recipients as recipientgt;   {  "address": "${recipient.phone}",  "language": "en"  }  lt;/#listgt;  

Мой Java-код:

 List lt;Recipientgt; recipientList = new ArrayList lt;gt; (); Recipient r = new Recipient(); r.setPhone("123"); recipientList.add(r);   Template template = new Template("name", new StringReader(myTemplate), new Configuration()); Writer out = new StringWriter(); Maplt;String, Objectgt; dataModel = new HashMaplt;gt;(); dataModel.put("recipients", recipientList); template.process(dataModel, out);   

Но я получаю эту ошибку:

[пул-1-поток-7] freemarker.время выполнения: Ошибка при выполнении шаблона FreeMarker freemarker.core.Исключение InvalidReferenceException: Следующее значение равно нулю или отсутствует:==gt; получатель.телефон [в шаблоне «имя» в строке 1, столбец 220]

Что случилось? Пожалуйста, помогите. Спасибо.

Комментарии:

1. Для меня, скорее всего, ошибка говорит о том, что класс получателя не является общедоступным. Можете ли вы убедиться, что вы запускаете ту же версию, что и здесь? Я только что протестировал его, и он работает на меня.

2. Я не вижу здесь никаких проблем. Вы уверены, что точно показываете вещи в своем вопросе? Например, может быть, в реальном приложении у вас есть Recipient где phone находится null .