如何在 Play Framework 中显示表单数据
How to display form data in Play Framework
我使用表单创建了一个 Play 应用程序。代码如下所示。我的要求是我将在我的应用程序控制器中的索引方法中设置表单值。我需要在 index.scala.html 用户名字段中显示此值。如何在表单中显示用户名值。
index.scala.html
@(login: model.com.ranga.Login)
<!DOCTYPE html>
<html>
<head>
<title>Login Form example</title>
</head>
<body>
<div align="center" style='background: #80c846;'>
<div>Login Form</div>
<hr />
<form method="post" action="@routes.Application.login()">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" placeholder="Enter Username.."></td>
</tr>
<tr>
<td>Password</td>
<td><input type="text" name="password" placeholder="Enter Password.."></td>
</tr>
<tr>
<td></td>
<td><input type="submit"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Login.java
package model.com.ranga;
public class Login {
public String username;
public String password;
public Login() {
super();
}
public Login(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Login [username=" + username + ", password=" + password + "]";
}
}
Application.java
package controllers;
import model.com.ranga.Login;
import play.*;
import play.data.DynamicForm;
import play.data.Form;
import play.mvc.*;
import views.html.*;
public class Application extends Controller {
public Result index() {
Login login = new Login();
login.setUsername("Ranga");
return ok(index.render(login));
}
public Result login() {
Form<Login> loginForm = Form.form(Login.class).bindFromRequest();
Login login = loginForm.get();
System.out.println(login);
return ok(index.render(login));
}
}
index() 方法我正在设置用户名。我需要在用户名字段中显示此值。如何设置这个值。
您选择不按照 play 框架建议的创建模型的方式创建模型有什么原因吗? (扩展 ebean 模型并让它处理所有样板代码)
这也是游戏框架中记录较好的部分之一。查看以下链接
- https://www.playframework.com/documentation/2.0/JavaForms
- https://www.playframework.com/documentation/2.0/JavaFormHelpers
为了回答您的问题,您希望将表单对象传递给绑定到登录对象的 Scala 模板。然后您可以从表单对象中提取值。
答案是:
<input type='text' name='username' value='@login.getUsername()'></input>
我使用表单创建了一个 Play 应用程序。代码如下所示。我的要求是我将在我的应用程序控制器中的索引方法中设置表单值。我需要在 index.scala.html 用户名字段中显示此值。如何在表单中显示用户名值。
index.scala.html
@(login: model.com.ranga.Login)
<!DOCTYPE html>
<html>
<head>
<title>Login Form example</title>
</head>
<body>
<div align="center" style='background: #80c846;'>
<div>Login Form</div>
<hr />
<form method="post" action="@routes.Application.login()">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" placeholder="Enter Username.."></td>
</tr>
<tr>
<td>Password</td>
<td><input type="text" name="password" placeholder="Enter Password.."></td>
</tr>
<tr>
<td></td>
<td><input type="submit"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Login.java
package model.com.ranga;
public class Login {
public String username;
public String password;
public Login() {
super();
}
public Login(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Login [username=" + username + ", password=" + password + "]";
}
}
Application.java
package controllers;
import model.com.ranga.Login;
import play.*;
import play.data.DynamicForm;
import play.data.Form;
import play.mvc.*;
import views.html.*;
public class Application extends Controller {
public Result index() {
Login login = new Login();
login.setUsername("Ranga");
return ok(index.render(login));
}
public Result login() {
Form<Login> loginForm = Form.form(Login.class).bindFromRequest();
Login login = loginForm.get();
System.out.println(login);
return ok(index.render(login));
}
}
index() 方法我正在设置用户名。我需要在用户名字段中显示此值。如何设置这个值。
您选择不按照 play 框架建议的创建模型的方式创建模型有什么原因吗? (扩展 ebean 模型并让它处理所有样板代码) 这也是游戏框架中记录较好的部分之一。查看以下链接
- https://www.playframework.com/documentation/2.0/JavaForms
- https://www.playframework.com/documentation/2.0/JavaFormHelpers
为了回答您的问题,您希望将表单对象传递给绑定到登录对象的 Scala 模板。然后您可以从表单对象中提取值。
答案是:
<input type='text' name='username' value='@login.getUsername()'></input>