Wicket wantOnSelectionChangedNotifications изменяет текстовое поле ввода - PullRequest
0 голосов
/ 14 января 2019

У меня есть простая форма в калитке, есть поле с именем шаблона и несколькими флажками с переопределенными методами 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);
            }
        });

это автоматически добавляет слова в моем поле ввода. например, это было "эй", тогда после щелчка это будет "эй, эй" и т. д. Может быть, кто-то может помочь?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Я предполагаю, что имя вашего входа - "templateName"? В этом случае этот параметр будет отправлен дважды, когда wantOnSelectionChangedNotifications инициирует запрос.

Пожалуйста, дайте вашему входу другое имя, чем параметр вашей страницы.

0 голосов
/ 15 января 2019

Кажется, offerTemplateFormModel.setTemplateName(...) снова вызывается.

Это странно, потому что onInitialize() вызывается только один раз за время жизни страницы / компонента. Если бы вы использовали onConfigure(), тогда было бы нормальным поведением наблюдать.

Если страница не имеет состояния, то для каждого запроса создается новый экземпляр, а затем, скорее всего, значение в параметрах запроса накапливает старые значения.

...