Wicket wantOnSelectionChangedNotifications 更改输入文本字段
Wicket wantOnSelectionChangedNotifications changes input textfield
我在 wicket 中有一个简单的表单,有一个带有模板名称和几个复选框的字段,以及覆盖的 onSelectionChange 方法。当我从页面参数
中将一些文本放入文本字段时
@Override
protected void onInitialize() {
super.onInitialize();
if (PageParameters.get("templateName").toString() != null) {
OfferTemplate offerTemplate = huskyService.getTemplate(PageParameters.get("templateName").toString());
offerTemplateFormModel.setTemplateName(offerTemplate.getTemplateName());
然后我标记复选框
add(new CheckBox("htmlCheckbox", new Model<Boolean>(Boolean.TRUE)) {
protected boolean wantOnSelectionChangedNotifications() {
return true;
}
@Override
protected void onSelectionChanged(Boolean newSelection) {
super.onSelectionChanged(newSelection);
isHtmlVisible = !isHtmlVisible;
htmlTemplate.setRequired(isHtmlVisible);
offerTemplateFormModel.setHtmlCheckbox(isHtmlVisible);
htmlDiv.setVisible(isHtmlVisible);
}
});
它会自动在我的输入字段中添加单词。例如它是 "hey" 然后点击后它将是 "hey;hey" 等等。
也许有人可以帮忙?
好像又调用了offerTemplateFormModel.setTemplateName(...)
这很奇怪,因为 onInitialize()
在 Page/Component 的生命周期中只被调用一次。如果您使用的是 onConfigure()
那么观察到的是正常行为。
如果页面是无状态的,则会为每个请求创建一个新实例,然后请求参数中的值很可能会累积旧值。
我假设您输入的名称是 "templateName"?在这种情况下,当 wantOnSelectionChangedNotifications
触发请求时,该参数将被发送两次。
请为您的输入指定一个不同于页面参数的名称。
我在 wicket 中有一个简单的表单,有一个带有模板名称和几个复选框的字段,以及覆盖的 onSelectionChange 方法。当我从页面参数
中将一些文本放入文本字段时@Override
protected void onInitialize() {
super.onInitialize();
if (PageParameters.get("templateName").toString() != null) {
OfferTemplate offerTemplate = huskyService.getTemplate(PageParameters.get("templateName").toString());
offerTemplateFormModel.setTemplateName(offerTemplate.getTemplateName());
然后我标记复选框
add(new CheckBox("htmlCheckbox", new Model<Boolean>(Boolean.TRUE)) {
protected boolean wantOnSelectionChangedNotifications() {
return true;
}
@Override
protected void onSelectionChanged(Boolean newSelection) {
super.onSelectionChanged(newSelection);
isHtmlVisible = !isHtmlVisible;
htmlTemplate.setRequired(isHtmlVisible);
offerTemplateFormModel.setHtmlCheckbox(isHtmlVisible);
htmlDiv.setVisible(isHtmlVisible);
}
});
它会自动在我的输入字段中添加单词。例如它是 "hey" 然后点击后它将是 "hey;hey" 等等。 也许有人可以帮忙?
好像又调用了offerTemplateFormModel.setTemplateName(...)
这很奇怪,因为 onInitialize()
在 Page/Component 的生命周期中只被调用一次。如果您使用的是 onConfigure()
那么观察到的是正常行为。
如果页面是无状态的,则会为每个请求创建一个新实例,然后请求参数中的值很可能会累积旧值。
我假设您输入的名称是 "templateName"?在这种情况下,当 wantOnSelectionChangedNotifications
触发请求时,该参数将被发送两次。
请为您的输入指定一个不同于页面参数的名称。