我一直无法让我的表单绑定正常工作(基本上是试错)。在 Play 2.0.3 (Java) 中,将表单绑定到由其他对象组成的模型的正确方法是什么?
我制作了这个小例子来尝试更好地理解它。但即使是这个基本的例子似乎也有问题。
我试图将表单绑定到的 Simple 类有 3 个字段,一个普通的字符串字段、一个字符串列表和一个自定义字段,它只是一个字符串的包装器。在提交表单时,所有字段都被填充,除了保持为空的自定义字段。
这是实际的代码
控制器
static Form<Simple> simpleform=form(Simple.class);
public static Result simpleForm(){
Form<Simple> filledForm=simpleform.bindFromRequest();
System.out.println(filledForm);
return ok(views.html.simpleForm.render(filledForm.get().toString()));
}
模型
public class Simple {
public String text;
public List<String> stringList;
public SimpleWrapper wrappedText;
@Override
public String toString(){
return text +"-"+simpleWrapper+"-"+stringList;
}
public class SimpleWrapper{
String otherText;
public SimpleWrapper(){}
public SimpleWrapper(String otherText){
this.otherText=otherText;
}
@Override
public String toString(){
return otherText;
}
}
看法
@(text:String)
@import helper._
@form(routes.Management.simpleForm()){
<input type="hidden" value="string" name="stringList[0]">
<input type="hidden" value="stringAgain" name="stringList[1]">
<input type="hidden" value="wrapped" name="wrappedText.otherText">
<input type="text" id="text" name="text">
<input type="submit" value="submit">
}
This was passed @text