Java 玩框架-处理POST请求
这是处理登录POST请求的路径:Java 玩框架-处理POST请求,java,http,web,playframework-2.0,web-development-server,Java,Http,Web,Playframework 2.0,Web Development Server,这是处理登录POST请求的路径: POST /login/submit controllers.Users.loginSubmit(user : String, password : String) 这是login.scala.html: <form method="post" action="???"> <input type="text" name="username" /><br/> <input typ
POST /login/submit controllers.Users.loginSubmit(user : String, password : String)
这是login.scala.html:
<form method="post" action="???">
<input type="text" name="username" /><br/>
<input type="password" name="password" /><br/>
<input type="submit" value="Login" />
</form>
我有两个问题:
谢谢如果是
POST
表单,您不需要在路径中声明参数
:
POST /login/submit controllers.Users.loginSubmit()
模板:
<!-- syntax: @routes.ControllerName.methodName() -->
<form method="post" action="@routes.Users.loginSubmit()">
<input type="text" name="username" /><br/>
<input type="password" name="password" /><br/>
<input type="submit" value="Login" />
</form>
控制器:
public static Result loginSubmit(){
DynamicForm dynamicForm = Form.form().bindFromRequest();
Logger.info("Username is: " + dynamicForm.get("username"));
Logger.info("Password is: " + dynamicForm.get("password"));
return ok("ok, I recived POST data. That's all...");
}
public static Result loginSubmit(){
DynamicForm dynamicForm = formFactory.form().bindFromRequest();
Logger.info("Username is: " + dynamicForm.get("username"));
Logger.info("Password is: " + dynamicForm.get("password"));
return ok("ok, I recived POST data. That's all...");
}
模板表单帮助程序
还可以在Play的模板中创建表单,以便执行以下操作:
@helper.form(action = routes.User.loginSubmit()) {
<input type="text" name="username" /><br/>
<input type="password" name="password" /><br/>
<input type="submit" value="Login" />
}
@helper.form(action=routes.User.loginSubmit()){
}
在Play Framework 2.5.x版中使用大型和/或预先填充的表单时,它们特别有用,您应该使用 您可以在这里找到示例: 进口:
import play.data.DynamicForm;
import play.data.Form;
import play.data.DynamicForm;
import play.data.FormFactory;
注入:
@Inject FormFactory formFactory;
控制器:
public static Result loginSubmit(){
DynamicForm dynamicForm = Form.form().bindFromRequest();
Logger.info("Username is: " + dynamicForm.get("username"));
Logger.info("Password is: " + dynamicForm.get("password"));
return ok("ok, I recived POST data. That's all...");
}
public static Result loginSubmit(){
DynamicForm dynamicForm = formFactory.form().bindFromRequest();
Logger.info("Username is: " + dynamicForm.get("username"));
Logger.info("Password is: " + dynamicForm.get("password"));
return ok("ok, I recived POST data. That's all...");
}
它也适用于Scala吗?对于我来说,不能使用POST,我必须切换以获取请求,因为对象请求中没有任何内容获取表单对我来说不适用于“form().bindFromRequest();“Got to use”form.form().bindFromRequest();“如图所示,答案是为Play 2.0.x编写的,在2.1.x中,团队对其进行了重构,无论如何,这不是问题,你可以使用适当的导入<代码>导入静态play.data.Form.Form代码>