我添加了一个包含两个组件的可分页列表视图,一个是文本字段,另一个是下拉列表。检查验证的常规方法是添加一个反馈面板。但是当在网格中使用相同的方法时,它会给出一个错误,指出带有wicket:id =“xy”的反馈组件已经被解析。 有没有办法验证这些组件? JAVA CODE HTML CODE
答案 0 :(得分:0)
代码中的某个位置(例如,您的被覆盖的Form#onSubmit()
或Form#onError()
,您的一个Ajax行为等),您可以使用wicket ID添加组件" FeedbackSubQuestions _"再次,即使之前已添加此组件。如下所示:
public class MyPage extends WebPage {
public MyPage() {
this.add(new FeedbackPanel("FeedbackSubQuestions_"));
this.add(new Form<Void>("myForm"){
@Override
protected void onError() {
// This call the produce the error as the feedback component is already in the component hierarchy
MyPage.this.add(new FeedbackPanel("FeedbackSubQuestions_"));
}
});
...
Adding all the form components with validation and their ajax behaviors
...
}
}
在wicket中,一旦构建了组件层次结构,后续与页面的交互就不再需要重新初始化任何一个。也就是说,一旦您添加反馈面板以显示您的反馈,您就不需要再次添加此面板。如果要显示错误(例如表单验证失败,或者手动调用Component#error(String)
),反馈将在再次呈现反馈面板时自动选择这些错误(例如,当您将其添加到ajax响应或整个页面将作为表单提交过程的一部分重新呈现。)