При выполнении FreeMarker следующее оценивается как ноль или отсутствует - PullRequest
0 голосов
/ 14 февраля 2019

Я использую FreeMarker (бесплатный шаблонизатор на основе Java, изначально ориентированный на динамическое создание веб-страниц с программной архитектурой MVC) для создания некоторых HTML-страниц. У меня есть шаблон бесплатного маркера с этим фрагментом кода:

 Dear ${user.firstname} ${user.surname},</h3>

Я создал этот фрагмент кода для проверки:

public static void main(String[] args) throws IOException, TemplateException {


    class User {

        String firstname;

        public String getFirstname() {
            return firstname;
        }

        public void setFirstname(String firstname) {
            this.firstname = firstname;
        }





    }


    String templateName = "tdk_reminder_ext_body.ftl";

     final Map<String, Object> finalModel = new HashMap<>();

     User user = new User();

     user.setFirstname("firstname");

     finalModel.put("serverName", "local");
     finalModel.put("user", user);



    Configuration cfg = new Configuration(Configuration.getVersion());

    cfg.setDirectoryForTemplateLoading(new File("C:/Work/eclipse-tdk/templates/engine/"));
    cfg.setDefaultEncoding("UTF-8");
    cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

    final freemarker.template.Template freemarkerTemplate = cfg.getTemplate(templateName);

    System.out.println (FreeMarkerTemplateUtils.processTemplateIntoString(freemarkerTemplate, finalModel));


}

Но когда я запустил программу, я получил эту ошибку:

FTL stack trace ("~" means nesting-related):
    - Failed at: ${user.firstname}  [in template "tdk_reminder_ext_body.ftl" at line 34, column 38]
----

1 Ответ

0 голосов
/ 14 февраля 2019

Ваш класс должен быть публичным. См. Документацию .

public class User {

    String firstname;

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...