Java Play framework 2.4表单填充不起作用

Java Play framework 2.4表单填充不起作用,java,playframework,playframework-2.4,Java,Playframework,Playframework 2.4,在PlayFramework2.4Java中,我需要使用以下代码填写表单,但它不起作用。usereditform.field(“email”).value()的输出值为空。有人知道为什么吗 SignupClz signupobj = new SignupClz(); signupobj.email="abcd@efgh.com"; signupobj.name="abcd"; signupobj.password = "eoijf"; Form<SignupClz> useredi

在PlayFramework2.4Java中,我需要使用以下代码填写表单,但它不起作用。usereditform.field(“email”).value()的输出值为空。有人知道为什么吗

SignupClz signupobj = new SignupClz();
signupobj.email="abcd@efgh.com";
signupobj.name="abcd";
signupobj.password = "eoijf";

Form<SignupClz> usereditform = Form.form(SignupClz.class).fill(signupobj);
System.out.println(usereditform.field("email").value());
SignupClz signupobj=new SignupClz();
signupobj.email=”abcd@efgh.com";
signupobj.name=“abcd”;
signupobj.password=“eoijf”;
formusereditform=Form.Form(SignupClz.class).fill(signupobj);
System.out.println(usereditform.field(“email”).value());

此代码是正确的。请看其他几点-也许你不认识“abcd@efgh.com“控制台中的输出

例如,我有类似的代码,它可以工作:

EditForm rawEditForm = new EditForm();
rawEditForm.title = boxModel.title;
rawEditForm.body = boxModel.body;
rawEditForm.id = id;

Form<EditForm>  editForm = Form.form(EditForm.class).fill(rawEditForm);
Logger.info("Title: " + editForm.field("title").value());
EditForm rawEditForm=new EditForm();
rawiditform.title=boxModel.title;
rawEditForm.body=boxModel.body;
rawEditForm.id=id;
Form editForm=Form.Form(editForm.class).fill(rawEditForm);
Logger.info(“Title:+editForm.field(“Title”).value());

我正在学习PlayFramework,偶然发现了这个问题

对于PlayFramework 2.8,无法直接访问表单字段值,无论是读取还是填写(写入)信息。在构建表单时,您必须明确地告诉它,如下所示:

 @Inject
 FormFactory formFactory;

 Form<SignupClz> usereditform = FormFactory.form(SignupClz.class) // 
                                .withDirectFieldAccess(true)
                                .fill(signupobj);

 System.out.println(usereditform.field("email").value());
@Inject
FormFactory FormFactory;
表单usereditform=FormFactory.Form(SignupClz.class)//
.withDirectFieldAccess(真)
.填写(signupobj);
System.out.println(usereditform.field(“email”).value());
请注意,在此版本中,表单是使用FormFactory构建的,请确保将其注入或添加到代码中

官方文件中的详细信息