В веб-платформе Apache Wicket каждый компонент возвращает значение false из getOuputMarkupId () по умолчанию .
Мне любопытно узнать причину. Дизайнерское решение позади.
Я использую компоненты ajax, и мне нужно обновить некоторые другие компоненты на странице. Чтобы сделать это, я должен установить setOutputMarkupId (true) для каждого компонента, который участвует в обновлении страницы ajax. Поскольку я интенсивно использую AJAX, я делал это очень часто.
И это не очень удобно. Кроме " Лучший код - это вообще не код ".
Я могу справиться с этим следующим образом:
class MyApp extends Application {
@Override
public init() {
Application.addComponentInstantiationListener(
new IComponentInstantiationListener() {
public void onInstantiation(Component component) {
component.setOutputMarkupId(true);
component.setOutputMarkupPlaceholderTag(true);
}
}
);
Но есть ли компромисс?
Мне приходят на ум только компромиссы:
- отображаемая страница (html) больше
- есть некоторые издержки рендеринга (т. Е. Когда атрибуты id записываются в html)
Но у них только небольшой след.