使用Java在Play Framework 2.2.x中处理POST请求?

syr*_*rup 0 java post playframework playframework-2.2

我开始使用Play 2.2.x,我正在尝试处理POST请求,我的理解是我不需要在conf/routes文件中指定参数,而是使用play的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);
    }
Run Code Online (Sandbox Code Playgroud)

但是,我在Eclipse中遇到此错误:

"The method form() is undefined for the type Form
Run Code Online (Sandbox Code Playgroud)

当我执行"play run"时,我得到了这个编译器:

error: cannot find symbol
    DynamicForm data = Form.form().bindFromRequest();
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题?这个类或方法是否已弃用?

谢谢!

Vid*_*dya 6

您导入了错误的Form类.您需要导入play.data.Form,如Javadoc中所示.

该类play.api.data.FormScalaSc的一部分,如Scaladoc所示.

  • 这是Play 2.x的经验法则,`play.api.*`中的类专用于Scala,而没有`api`的类适用于Java控制器. (2认同)