Играть! 2.1 Формы сломаны после обновления Play! 2.0 приложение

Простой фрагмент кода говорит сам за себя.

[error]   Form<User> userForm = Form.form(User.class).bindFromRequest();
[error]                             ^
[error]   symbol:   method form()
[error]   location: class Form

Я проверил документацию: http://www.playframework.com/documentation/2.1.0/JavaForms

Не понимает, что происходит...

Документация ясно об этом:

http://www.playframework.com/documentation/2.1.0/Migration

и Java API тоже ясен:

http://www.playframework.com/documentation/api/2.1.0/java/play/data/Form.html#form(java.lang.Class)


person Loïc Guillois    schedule 15.03.2013    source источник
comment
Я бы не сказал, что это говорит само за себя. Что это за сообщение об ошибке? Других подробностей нет?   -  person urcadox    schedule 15.03.2013
comment
ничего. Я не разработчик scala, поэтому я не уверен, но я не вижу метода form() в игре! исходный код: playframework.com/documentation/api/2.1.0/java/play/data/ Как генерируется javadoc?   -  person Loïc Guillois    schedule 15.03.2013


Ответы (2)


Метод form был перемещен в версию 2.1.

Убедитесь, что вы на самом деле используете play.data.Form.form() (ранее это было в play.mvc.Controller.Form, если я хорошо помню).

Если вы изменили это, попробуйте play clean clean-all и повторно запустите компиляцию. Тогда должно работать...

person Alban Dericbourg    schedule 15.03.2013
comment
уже сделали команду play clean. играть бежать было недостаточно. Команда play compile решает проблему. В моем понимании это очень плохое поведение. ничего об этом в руководстве по миграции. - person Loïc Guillois; 15.03.2013
comment
Я с тобой согласен. Играть! 2 документация слишком легкая. Способ продать больше книг? - person Alban Dericbourg; 15.03.2013

Form<User> userForm = form(User.class);

ИЛИ

DynamicForm requestData = form().bindFromRequest();

Переход с версии 2.0.x на версию 2.1.x приводит к ошибке для приведенного выше кода.

решение:

play.data.Form.* — это статический импорт.

используйте import static play.data.Form.*; в своем файле, и ошибка будет устранена.

person Vinayak Sakhare    schedule 02.05.2013