[英]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);
}
});
它会自动在我的输入字段中添加单词。 例如,它是“嘿”,那么在单击后将是“嘿;嘿”,等等。也许有人可以帮忙吗?
我假设您输入的名称是“ templateName”? 在这种情况下,当wantOnSelectionChangedNotifications
触发请求时,该参数将发送两次。
请为您输入的名称输入与page参数不同的名称。
似乎offerTemplateFormModel.setTemplateName(...)
被再次调用。
这很奇怪,因为onInitialize()
在页面/组件的生存onInitialize()
仅被调用一次。 如果您使用的是onConfigure()
则观察到这是正常现象。
如果页面是无状态的,则为每个请求创建一个新实例,然后很可能在请求参数中的值会累积旧值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.