Недавно созданные представления 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