Как загрузить значение в Java из Freemarker? - PullRequest
0 голосов
/ 10 октября 2018

Я хочу получить значение переменной из Freemarker, прежде чем сгенерировать его во второй раз.Это как-то возможно?

У меня есть следующий код Java:

        Template temp = cfg.getTemplate("template.html");
        Map<String, Object> data = new HashMap<>();

        RestClient rc = new RestClient();
        String id = "";//here i need "my_long_id_from_freemaker" value from Freemaker

        String response = rc.somemethod (id);//returns list of items

        data.put("items", response );

Мой шаблон:

<#assign my_long_id_from_freemaker = "my_long_id_from_freemaker_value">
<div class="panel-body">
  <#list items as item>
 <p>${item.name}: ${item.id} <button type="button" id="${item.id}" >Details</button>
    </#list> 
</div>

И после того, как страница генерируется в первый раз, я хочучтобы иметь возможность изменить значение "my_long_id_from_freemaker" и обновить страницу, что будет инициировать еще один вызов моего кода Java.

1 Ответ

0 голосов
/ 11 октября 2018

Поскольку вам нужно значение из шаблона перед обработкой (выполнением) шаблона, значение должно быть уже там после синтаксического анализа шаблона.Для этого вы можете запустить шаблон с:

<#ftl attributes={"my_long_id_from_freemaker": 123}>

, а затем на объекте Template вы можете позвонить:

id = temp.getCustomAttribute("my_long_id_from_freemaker");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...