繁体   English   中英

小票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);
            }
        });

它会自动在我的输入字段中添加单词。 例如,它是“嘿”,那么在单击后将是“嘿;嘿”,等等。也许有人可以帮忙吗?

我假设您输入的名称是“ templateName”? 在这种情况下,当wantOnSelectionChangedNotifications触发请求时,该参数将发送两次。

请为您输入的名称输入与page参数不同的名称。

似乎offerTemplateFormModel.setTemplateName(...)被再次调用。

这很奇怪,因为onInitialize()在页面/组件的生存onInitialize()仅被调用一次。 如果您使用的是onConfigure()则观察到这是正常现象。

如果页面是无状态的,则为每个请求创建一个新实例,然后很可能在请求参数中的值会累积旧值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM