玩2.0框架 - POST参数(Play 2.0 framework - POST paramet

2019-06-25 10:57发布

我想POST参数来操作,并在路线中写道:

# Home page
GET    /                         controllers.Application.index()

POST   /login/name:/password:    controllers.Application.login(name, password)

我有一个动作

public static Result login(String name, String password) {
    return ok(name + " "  + password);
}

我的形式是

<form action="/login" method="post">

    <input name="name" type="text" id="name">
    <input name="password" type="password" id="password">
    <input type="submit" value="Login">

</form>

而且它不工作

对于请求'POST /login' [Missing parameter: name]

我究竟做错了什么?

Answer 1:

简单地更改为以下路径:

POST   /login    controllers.Application.login(name, password)

通过不包括动态名字(:名称和:密码)路由路径,假设是变量来自请求(即:你的HTML输入)

你所得到的错误指示名和密码不会出现在URL路径......这是正确的,因为你在你的路由指定的路径指示的路径应该是这个样子:

/登录/ MYNAME /输入mypassword

请检查http://www.playframework.org/documentation/2.0.1/JavaRouting ,并期待在一节“行动呼吁生成的方法”



Answer 2:

你的路线不应包括动态的部分(名称,密码),因为数据是在身体,而不是网址



Answer 3:

虽然旧的文章,但如果有人新来的问题。 我们不应该添加参数,当您使用后,如果你还没有使用的参数,这将是GET /登录/:名称/:密码controllers.Application.login(名称:字符串,密码:字符串)

对于帖子,不加参数,并将其绑定到控制器内部的情况下阶层和访问的变量。



文章来源: Play 2.0 framework - POST parameters