【发布时间】:2020-07-14 21:02:33
【问题描述】:
我正在使用 Playframework 2.8.x,我想在我的控制器中填充 play.data.Form 并将填充的副本传递到前端,我想在视图模板中使用它来预填充表单保存的值(用于编辑)。 但是,fill-Method - 据我了解 - 应该返回表单的副本,该表单已填充传递的对象字段作为值,不会被填充。有什么建议吗?
下面是一些示例代码:
public class Application extends Controller {
private Form<User> userForm;
final static Logger logger = LoggerFactory.getLogger("controllers.Application");
@Inject
public HomeController(FormFactory formFactory, MessagesApi messagesApi) {
this.userForm = formFactory.form(User.class);
this.messagesApi = messagesApi;
}
public Result editProfile(Request request) {
User activeUser = User.find.query().where().eq("email", "example@test.de").findOne();
logger.info("User - Firstname: " + activeUser.getFirstName());
userForm = userForm.fill(activeUser);
logger.info("userForm - raw data: " + userForm.rawData());
logger.info("userForm: " + userForm);
return ok(editProfile.render(userForm, request, messagesApi.preferred(request)));
}
}
用户成功从数据库中取回(第一个日志将正确的名字写入控制台,而第二个和第三个日志显示表单确实是空的:
userForm - raw data: {}
userForm: Form(of=class models.User, data={}, value=Optional[User [email= example@test.de]], errors=[])
为什么没有填充表单?
【问题讨论】:
标签: playframework