powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с Freemarker
1 сообщений из 1, страница 1 из 1
Работа с Freemarker
    #34051945
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник вопрос - есть карта Map с элементами (модель), которая используется процессором Freemarker-а для подстановки в шаблон. Написал собственную функцию, которая выполняет определенные операции с объектом, переданным в карте, с ключом, который эта функция принимает на входе. То есть вроде такого
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Вызов из шаблона
${imagestream("vehicle.image")}

Класс метода
 class  ImageStreamMethod  extends  TemplateMethodModel {
     public  Object exec(List args)  throws  TemplateModelException {
         if  (args.size() !=  1 ) {
             throw   new  TemplateModelException("Wrong arguments");
        }

        InputStream inputStream = (InputStream) Environment.getCurrentEnvironment().getVariable((String) args.get( 0 ));

         return   new  TemplateScalarModel() {
             public  String getAsString()  throws  TemplateModelException {
                 return  "";
            }
        };
    }
С помощью getVariable() пытаюсь получить объект InputStream из карты по ключу args.get(0). Но проблема в том, что выражение вроде "vehicle.image" вычисляется в null, но "vehicle" все-же возвращает StringModel. Как обработать выражение рекурсивно, и как получить объект InputStream, а не очередной Model?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с Freemarker
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]