Wicket - 表单提交后的后退按钮

时间:2012-05-24 08:17:10

标签: java forms wicket

我的表单和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。

我该如何解决这个问题?

感谢。

1 个答案:

答案 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时,我会在打开表单页面之前找到完全预编译的页面。真棒!