Java 在模板中呈现已填充的表单

Java 在模板中呈现已填充的表单,java,playframework-2.0,Java,Playframework 2.0,我在玩!java项目上的framework 20,我在向视图传递表单时遇到了问题 在控制器中,我有以下代码: Filter filter = new Filter(); //add some state to the filter object Form<Filter> filterForm = form(Filter.class).fill(filter); Logger.info("FilterForm: " + filterForm.get().toString()); //

我在玩!java项目上的framework 20,我在向视图传递表单时遇到了问题

在控制器中,我有以下代码:

Filter filter = new Filter();
//add some state to the filter object
Form<Filter> filterForm = form(Filter.class).fill(filter);
Logger.info("FilterForm: " + filterForm.get().toString()); // So far so good
return ok(filterView.render(filterForm));
如果我在控制器中通过映射填充过滤器状态,我也会得到相同的错误:

filterForm = filterForm.bind(aMapWithTheState);
仅当在代码中填充过滤器时,才会出现此行为。当我在其他方法中执行
filterfromrequest.bindFromRequest()
时,所有方法都可以正常工作

谢谢

已解决

我不得不像以前一样使用表单的
bind
方法,使用状态映射。但正确的方法是同时传递属性名称:

Map<String, String> formState = new HashMap<String, String>();
formState.put("name", name);
formState.put("birthDate", birthDate);
formState.put("address", address);

filterForm = filterForm.bind(formState, "name", "birthDate", "address");
Map formState=newhashmap();
formState.put(“名称”,名称);
formState.put(“生日”,生日);
formState.put(“地址”,地址);
filtermber=filtermber.bind(formState,“姓名”、“出生日期”、“地址”);

尽管如此,声明属性名称不是强制性的。

是否可以提供更多代码?我的意思是,如果使用fill(),那么hasErrors()将返回false,因为还没有进行验证,data()将为空,因为这是一个映射,它从未被填充。但是,get()应该返回您的筛选器对象,所以我不确定那里发生了什么。谢谢@estmatic,我解决了这个问题。请看我的答案。
Map<String, String> formState = new HashMap<String, String>();
formState.put("name", name);
formState.put("birthDate", birthDate);
formState.put("address", address);

filterForm = filterForm.bind(formState, "name", "birthDate", "address");