#scala #playframework #playframework-2.0
#scala #playframework #playframework-2.0
Вопрос:
Я использую play framework версии 2.2 и пытаюсь передать карту в шаблон scala. Карта имеет строку в качестве ключа и пользовательский объект в качестве значения. Мой контроллер находится на Java — шаблон находится в Scala.
Контроллер:
Map<String, UDObject> myMap = new HashMap<String, UDObject>();
UDObject ud1 = new UDObject(a,b,c);
myMap.put("abcd", ud1);
return ok(index.render(myMap));
Index.scala.html Шаблон:
@(myMap: Map[String, UDObject])
Когда я пытаюсь перезагрузить / eclipse или использовать play run / start, я получаю сообщение об ошибке компиляции, в котором сообщается, что шаблон не смог найти пользовательский объект UDObject. Есть идеи, что я делаю не так?
Ответ №1:
Вам необходимо использовать полное имя в объявлении параметров в шаблоне воспроизведения, например:
@(myMap: Map[String, com.example.UDObject])
К сожалению, это невозможно import
, поэтому все, чего нет в пространстве имен model, view или Scala, должно использовать полное имя.
Ответ №2:
Также можно добавить этот импорт для всех ваших шаблонов.
templatesImport = Seq("com.example.UDObject")
Теперь вам не нужно использовать полное имя вашего класса.
Комментарии:
1. попытался добавить его — также увидел заметку на сайте play framework, но по какой-то причине у меня это не работает (я перезагрузил / запустил eclipse и также запустил clean)