首页 > 解决方案 > 在提交时获取请求参数数据

问题描述

我试图在我的控制器上单击提交时读取输入字段数据。

我的login.scala.html

<form action="@routes.HomeController.email_auth()" method="post">
        Enter your email address :<input type="text" name="username"> <br>
        <input type="submit" value="Login">
    </form>

将此添加到routes,

POST     /email_auth                 controllers.HomeController.email_auth

继续阅读HomeController

public Result email_auth() {
        DynamicForm form = formFactory.form().bindFromRequest();
//        if (form.data().size() == 0) {
//            return badRequest("Expceting some data");
//        } else {
            String response = form.get("username");
            System.out.println(response);
//        }
        return ok(email_auth.render());
    }

此外,尝试呈现不同的视图。如何使用 java 执行此操作

标签: javaplayframeworkplayframework-2.6

解决方案


我看到的第一件事是您的路线被定义为 GET 请求,但您发送表单时带有 post 请求。因此,Play 不会找到您的路线或采取另一条适合您要求的路线。您的路线应如下所示:

POST     /email_auth       controllers.HomeController.email_auth

要渲染不同的视图,您只需将其导入控制器并在返回方法中调用其渲染方法。如果你想渲染一个叫做my_view.scala.html你需要返回的视图ok(my_view.render());

我还尝试了您的代码,并将参数打印到控制台。所以你想要的电子邮件已经保存到变量response中。


推荐阅读