Model view controller 播放2.0框架-后期参数

Model view controller 播放2.0框架-后期参数,model-view-controller,playframework,url-routing,Model View Controller,Playframework,Url Routing,我试图将参数发布到操作,并在路由中写道: # Home page GET / controllers.Application.index() POST /login/name:/password: controllers.Application.login(name, password) 我有一个动作 public static Result login(String name, String password) { r

我试图将参数发布到操作,并在路由中写道:

# 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'[缺少参数:名称]


我做错了什么?

您的路由不应该包括动态部分(名称、密码),因为数据在正文中,而不是url中

只需将路由更改为以下内容:

POST   /login    controllers.Application.login(name, password)
通过在路由路径中不包括动态名称(:name和:password),假设变量来自请求(即:您的html输入)

您收到的错误表明url路径中未显示名称和密码。。。这是正确的,因为您在路由中指定的路径指示该路径应如下所示:

/登录名/myname/mypassword


请检查并查看名为“调用操作生成器方法”的部分,尽管这是一篇旧文章,但如果有新的人提出这个问题。我们不应该添加参数,当您使用post时,如果您确实使用了参数,那么 GET/login/:name/:password controllers.Application.login(名称:String,密码:String)


对于post,不要添加参数并将其绑定到控制器内的case类并访问变量。

您可以编辑问题并输入表单的代码。作为盲目猜测(这里是php开发人员),
/login/name:/password:
定义您需要提供两个额外的参数。。少了一个。这就是错误所说的。似乎这个方法对POST不起作用,我正在使用这个解决方案