Калитка: куда добавлять компоненты? Конструктор? Или onBeforeRender?

Я новичок в Wicket. Возможно, это просто мое незнание жизненного цикла Wicket, пожалуйста, просветите меня! Насколько я понимаю, объекты Wicket WebPage создаются один раз, а затем сериализуются. Это привело меня в замешательство, см. Ниже.

В настоящее время у меня есть класс шаблона, который я собираюсь создать подкласс. Я следил за примером в документации Wicket, демонстрирующим, как переопределить поведение шаблона в подклассе:

protected void onBeforeRender() {
        add(new Label("title", getTitle()));

        super.onBeforeRender();
}

protected String getTitle() {
        return "template";
}

Подкласс:

protected String getTitle() {
        return "Home";
}

Это работает очень хорошо. Что мне не ясно, так это «лучшие практики» для этого. Похоже, что onBeforeRender () вызывается при каждом запросе страницы, нет? Похоже, что на странице было бы значительно больше обработки, если бы все было в onBeforeRender () . Я мог бы легко последовать примеру других примеров Wicket и добавить некоторые компоненты в конструктор, которые я не хочу переопределять, но затем я разделил логику компонентов на два места, что я не решаюсь делать.

Если я добавляю компонент, который должен быть во всех подклассах, должен ли я добавлять его в конструктор или onBeforeRender () ?

5
задан JimHawkins 11 July 2018 в 07:14
поделиться