Я не совсем уверен, насколько понимаю вашу проблему. Я предполагаю, что у вас есть 2 контейнера и вы хотите отобразить только один из них. Если это так, вы можете просто расширить метод onConfigure()
и изменить видимость так, как вы этого хотите. Этот метод будет вызываться один раз во время каждого рендеринга и поэтому предпочтителен для расширения метода isVisible()
(который вызывается несколько раз в течение каждого запроса).
private IModel<Boolean> switchModel = Model.of(Boolean.FALSE);
@Override
protected void onInitialize() {
super.onInitialize();
WebMarkupContainer container1 = new WebMarkupContainer("container1") {
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(Boolean.TRUE.equals(switchModel.getModelObject()));
}
};
add(container1);
WebMarkupContainer container2 = new WebMarkupContainer("container2") {
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(Boolean.FALSE.equals(switchModel.getModelObject()));
}
};
add(container2);
}