2016-07-26 33 views
-1

我有一个ModalWindow,它有一个窗体,它有一个TabbedPanel,它有两个AbstractTabs,每个窗体上都有一个DataTable,并带有输入元素。Wicket表单缺少提交数据

所以:ModalWindow>表格> TabbedPanel - > TAB1(面板)>数据表(有两个标签)

内ModalWindow,我添加到窗体3个按钮,如下所示:

// save button 
    final GbAjaxButton save = new GbAjaxButton("save") { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public void onSubmit(final AjaxRequestTarget target, final Form<?> form) { 
      System.out.println("Saving something... "); 
     } 
    }; 

我可以看到通过POST发送到后端的数据,但我似乎无法访问DataTable中的任何字段。

的代码中的一些部分是:

tabA = new AbstractTab("Tab Name") { 
    public Panel getPanel() { 
     return new SomeNewPanel(panelId,<somedata>); // <-- this has the DataTable with inputs 
    } 
} 
Form form = new Form("formNameInHtml"); 
form.add(new TabbedPanel("htmlName", tabs); 

我会很感激在这个问题上的一些见解。

谢谢。

+1

@ martin-g我会停止使用Stack Overflow,因为像你的那样构造和无用的观察。我厌倦了所有认为自己知道并批评合法问题的人。忙起来。 – Fer

+0

'我可以看到数据通过POST发送到后端,但我似乎无法访问DataTable中的任何字段。“ - 这对我来说是无意义的。它需要澄清。您既不告诉我们表单组件模型的类型,也不告诉我们如何尝试读取onSubmit()中的POST数据。 –

回答

1

ModalWindow javadoc,“如果你想使用模态窗口组件中的窗体,确保你把窗体本身设置为另一种形式(嵌套窗体在Wicket中是合法的),窗体之前的窗体被提交关闭。“

Wicket会自动在模态窗口外添加一个窗体,所以如果你想使用第二个窗体,你应该覆盖org.apache.wicket.markup.html.form.Form#isRootForm(),并让它返回true。

+0

你好@atha,谢谢,但标记确实嵌入在子表单中。问题最终成为标记本身的标识。 Wicket的前端Ajax提交了错误的输入。真的很少见。 – Fer