Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework 缺少参数错误_Playframework_Playframework 2.0 - Fatal编程技术网

Playframework 缺少参数错误

Playframework 缺少参数错误,playframework,playframework-2.0,Playframework,Playframework 2.0,我是新加入游戏框架的,我正在尝试做一个简单的服务器发布。 在我的路线中,我设定: POST /Hello/add controllers.Hello.add(name) 在我的Hello.java类中,我设置: public class Hello extends Controller { public static Result add(String name){ //add code } } 在我的html文件中: <form

我是新加入游戏框架的,我正在尝试做一个简单的服务器发布。 在我的路线中,我设定:

POST    /Hello/add          controllers.Hello.add(name)
在我的Hello.java类中,我设置:

public class Hello extends Controller {
    public static Result add(String name){
        //add code
    }
}
在我的html文件中:

<form action="Hello/add" method="post">
    <input type="text" name="name" />
    <input type="submit" value="Add" />
</form>

有人知道为什么吗?

您不必在路由文件的方法签名中提供name参数,绑定就可以工作


在路由文件中,play不了解name参数的来源,因为您没有在路由模式中指定它

您不必在路由文件的方法签名中提供name参数,绑定才能工作

在路由文件中,播放不了解name参数的来源,因为您没有在路由模式中指定它

您必须在操作中使用,并且不在路由文件中指定任何参数:

路线:

POST    /Hello/add          controllers.Hello.add()
控制器和操作:

public class Hello extends Controller {
    public static Result add(){
        DynamicForm requestData = form().bindFromRequest();
        String name = requestData.get("name");
        // do what you want with the name variable
    }
}
您必须在操作中使用,并且不要在路由文件中指定任何参数:

路线:

POST    /Hello/add          controllers.Hello.add()
控制器和操作:

public class Hello extends Controller {
    public static Result add(){
        DynamicForm requestData = form().bindFromRequest();
        String name = requestData.get("name");
        // do what you want with the name variable
    }
}
同样,如果表单数据与模型无关,则需要使用DynamicForm。但是,如果它确实与模型相关(通常情况下应该是这样),您可以这样做:

public class Hello extends Controller {
    public static Result add(){
        Form<MyObject> inputObject = form(MyObject.class).bindFromRequest();
        // do what you want with the prefilled object
        // object is accessible through inputObject.get()
        // often you'd just inputObject.get().save();
    }
}
同样,如果表单数据与模型无关,则需要使用DynamicForm。但是,如果它确实与模型相关(通常情况下应该是这样),您可以这样做:

public class Hello extends Controller {
    public static Result add(){
        Form<MyObject> inputObject = form(MyObject.class).bindFromRequest();
        // do what you want with the prefilled object
        // object is accessible through inputObject.get()
        // often you'd just inputObject.get().save();
    }
}

我不明白。。我试图删除route文件中的参数,但另一个错误是:没有足够的参数用于方法add:(名称:java.lang.String)play.mvc.Result。我没有得到它。。我试图删除route文件中的参数,但另一个错误是:没有足够的参数用于方法add:(名称:java.lang.String)play.mvc.Result。难道没有其他方法吗?Play don’t do it?form()现在已不推荐使用。改用FormFactory。难道没有别的办法吗?Play don’t do it?form()现在已不推荐使用。改用FormFactory。