Недавно созданные представления scala.html не распознаются в Play Framework 2.x
Я использую Play Framework 2.0.1. Я создал приложение Java, используя команду "play new". По умолчанию создаются два представления: index.scala.html и main.scala.html
Я сделал несколько примеров учебных приложений, которые позволяют мне отображать эти представления. Однако, когда я добавляю новое представление (по умолчанию в app/views/), я получаю ошибку компиляции, которую он не может найти:
public static Result getAllCars() {
List<Car> cars = Car.getAllCars();
return ok(simpleCarView.render(cars));
}
Я могу сделать
import views.html.index;
import views.html.main;
но не
import views.html.simpleCarView;
Ошибка в консоли:
cannot find symbol
[error] symbol : variable simpleCarView
[error] location: class controllers.Application
Я попытался добавить scala.html представления в каталог файлов и из eclipse, но по какой-то причине они не найдены. Я также попытался перезапустить сервер Netty по умолчанию.
Любые идеи о том, что вызывает это?
Ответы
Ответ 1
Представления не компилируются Eclipse, но могут быть замечены eclipse после того, как они скомпилированы в Play, пока целевой каталог scala -2.9.1\classes_managed находится в пути сборки проекта eclipse.
Попробуйте запустить "play compile" в командной строке (или просто "скомпилируйте", если вы уже находитесь в игровой консоли), а затем обновляете проект в eclipse (выберите проект и нажмите F5)
Ответ 2
Для вас IntelliJ 12 пользователей:
Я обновился до Play 2.1, который сломал мой плагин поддержки Play IntelliJ.
Это заставило IntelliJ не распознать:
import views.html.*;
поэтому, нажав cmd + o
, чтобы оптимизировать импорт, он был удален.
Этот результат возникает при ошибке компиляции при запуске play clean compile
, поскольку
представления не были импортированы:
[error] symbol : variable index
[error] location: class controllers.Application
[error] return ok(index.render());
[error] ^
[error] 1 error
[error] (compile:compile) javac returned nonzero exit code
[error] application -
Итак, я удалил плагин, перезапустил IntelliJ и альта все работает
как прелесть!
Ответ 3
Вы можете использовать
~compile
в игровой консоли, чтобы обновленные шаблоны перекомпилировались при изменении файла, и, вероятно, Eclipse сразу увидит изменения (это делает IDEA).
Ответ 4
Это случилось со мной после того, как я скопировал весь проект и попытался его модифицировать. Изменения в представлениях HTML просто игнорируются, поскольку они не были скомпилированы.
Выполнение activator clean compile run
устраняет проблему.
Ответ 5
У меня тоже было это поведение. Оказывается, это типичная проблема с копией/вставкой. Я забыл обновить оператор импорта.
Ответ 6
Я делаю ту же самую play compile, что предложил InPursuit, но при добавлении совершенно нового представления я обнаружил, что мне нужно закрыть проект и снова открыть его, чтобы eclipse перестраивал свою "помощь по содержанию", информация.
Я просто щелкнул правой кнопкой мыши проект и выберите "Закрыть проект", а затем щелкните правой кнопкой мыши пустую папку проекта и выберите "Открыть проект". Это раздражает, но единственный способ (за исключением перезапуска затмения), который работал у меня. Иногда красные squigglies все еще там после повторного открытия, но они уходят, если я делаю обновление.
Ответ 7
В моем случае я просто добавил следующий импорт:
import views.html.*;
Eclipse IDE удаляет указанную строку, если вы организуете импорт через CTRL + SHIFT + O