Обработка запроса POST в Play Framework 2.2.x с Java?

Я начинаю работу с Play 2.2.x, я пытаюсь обрабатывать запросы POST, насколько я понимаю, мне не нужно указывать параметры в файле conf/routes, а извлекать запросы, используя класс DynamicForm для игры, как показано ниже. :

    import play.*;
    import play.api.data.Form;
    import play.data.DynamicForm;
    import play.mvc.*;  
    import views.html.*;

    public static Result hello() {
        DynamicForm requestData = Form.form().bindFromRequest();
        String firstname = requestData.get("firstname");
        String lastname = requestData.get("lastname");
        return ok("Hello " + firstname + " " + lastname);
    }

Однако я получаю эту ошибку в Eclipse:

"The method form() is undefined for the type Form

И я получаю этот компилятор, когда запускаю "play run":

error: cannot find symbol
    DynamicForm data = Form.form().bindFromRequest();

Что не так с этим кодом? Является ли этот класс или метод устаревшим?

Спасибо!


person syrup    schedule 12.01.2014    source источник


Ответы (1)


Вы импортировали неправильный класс Form. Вам необходимо импортировать play.data.Form, как показано в Javadoc.

Класс play.api.data.Form является частью Scala-версии Play, как показано в Scaladoc.

person Vidya    schedule 12.01.2014
comment
Это эмпирическое правило Play 2.x, согласно которому классы в play.api.* предназначены для Scala, а те же классы без api предназначены для контроллеров Java. - person biesior; 12.01.2014
comment
На самом деле я не знал этого соглашения. Спасибо за совет, @biesior! - person Vidya; 12.01.2014
comment
Вы правы! Я оставил Eclipse автоматически обрабатывать мой импорт, и я никогда бы не подумал, что проблема может быть там! Спасибо, вы спасаете жизнь :) - person syrup; 13.01.2014
comment
Рад помочь. Удачи тебе с твоим проектом! - person Vidya; 13.01.2014