我的表单和BACK按钮出现了新问题。
采取这种形式:
public SearchSomethingForm() {
super(ORSAWebConstants.FORM);
setModel(new CompoundPropertyModel<Void>(this));
add(section01Panel);
add(section02Panel);
add(section03Panel);
add(new SubmitButton());
}
如您所见,我没有基于单个Object的属性模型。
在表单中我只添加了一些带有一些INPUT的面板。例如:
private String name;
protected void onInitialize() {
super.onInitialize();
final TextField<String> foo = new TextField<String> ("name",new PropertyModel<String>(this,"name"));
add (foo);
}
每个Panel代码都有类似的东西。一些输入与本地属性的BIND。
然后在FORM SUBMIT中,我可以用
读取值section01Panel.getName();
问题
表单提交后,我打开一个带有结果的新页面。我想在FORM的页面上有一个BACK按钮,每个预先输入的字段已经编译好,所以用户只需要更改表格的一部分即可进行新的搜索。
没有特定的PropertyModel,我无法编译Object,其属性映射在表单字段上。表格不知道将添加哪种FIELD。
我该如何解决这个问题?
感谢。
答案 0 :(得分:0)
经过一些测试,我发现Wicket可以从页面传递整个页面,所以当我调用新页面时,我会通过表单页面:
SheetPage page = new SheetPage("SheetPage", idPojo,FormPage.this);
setResponsePage(page);
在SheetPage中,我将链接到上一页:
public SheetPage(String title, String idPojo, final FormPage fPage) {
Link back = new Link("back"){
private static final long serialVersionUID = 1L;
public void onClick() {
setResponsePage(fPage);
};
};
}
当我返回FormPage时,我会在打开表单页面之前找到完全预编译的页面。真棒!