[英]Play! framework - handle a POST request
this is the route to handle the login POST request: 这是处理登录POST请求的路由:
POST /login/submit controllers.Users.loginSubmit(user : String, password : String)
this is the login.scala.html: 这是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>
I got two questions: 我有两个问题:
thanks 谢谢
If it's POST
form, you don't need to declare params in the route
: 如果是
POST
表单,则不需要在route
声明params:
POST /login/submit controllers.Users.loginSubmit()
Template: 模板:
<!-- 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>
Import: 进口:
import play.data.DynamicForm;
import play.data.Form;
Controller: 控制器:
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...");
}
There are also form template helpers available for creating forms in Play's template so the same can be done as: 还有表单模板助手可用于在Play模板中创建表单,因此可以这样做:
@helper.form(action = routes.User.loginSubmit()) {
<input type="text" name="username" /><br/>
<input type="password" name="password" /><br/>
<input type="submit" value="Login" />
}
They are especially useful when working with large and/or pre-filled
forms 在处理大型和/或
pre-filled
形式时,它们特别有用
In Play Framework version 2.5.x Form.form() is deprecated and you should use inject a FormFactory 在Play Framework版本2.5.x 中,不推荐使用Form.form() ,您应该使用注入FormFactory
Here you can find example: The method form(Class) from Form class is deprecated in Play! 在这里您可以找到示例: 在Play类中不推荐使用Form类中的方法表单(Class)! Framework
骨架
Import: 进口:
import play.data.DynamicForm;
import play.data.FormFactory;
Inject: 注入:
@Inject FormFactory formFactory;
Controller: 控制器:
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...");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.