有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

表单提交后的java Wicket Back按钮

我有一个表单和后退按钮的新问题

采取这种形式:

public SearchSomethingForm() {
super(ORSAWebConstants.FORM);
setModel(new CompoundPropertyModel<Void>(this));

add(section01Panel);
add(section02Panel);
add(section03Panel);
add(new SubmitButton());

}

如您所见,我没有基于单个对象的属性模型

在表单中,我只添加了一些面板,里面有一些输入。例如:

private String name;
protected void onInitialize() {
 super.onInitialize();
 final TextField<String> foo = new TextField<String> ("name",new PropertyModel<String>(this,"name"));
 add (foo);
}

每个面板代码都有类似的内容。某些输入与本地属性绑定

然后在表单提交中,我可以用

section01Panel.getName();

问题

提交表单后,我打开一个新页面,显示结果。我想要一个返回到表单页面的按钮,每个预先输入的字段都已经编译好了,这样用户只需更改表单的一部分即可进行新的搜索

没有特定的PropertyModel,我无法编译属性映射到表单字段的对象。表单不知道将添加哪种类型的字段

我如何解决这个问题


共 (1) 个答案

  1. # 1 楼答案

    经过一些测试,我发现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时,我会发现页面与打开表单完全预编译的工作表页面之前一样。太棒了