Soy un Wicket newb. Esto puede ser simplemente mi ignorancia sobre el ciclo de vida de Wicket así que por favor, ¡ilumíname! Según tengo entendido, los objetos Wicket WebPage se instancian una vez y luego se serializan. Esto me ha llevado a un punto de confusión, ver abajo.Wicket: ¿Dónde agregar componentes? ¿Constructor? ¿O en BeforeRender?
Actualmente tengo una clase de plantilla que pretendo subclase. He seguido el ejemplo de los documentos Wicket demostrando cómo reemplazar el comportamiento de la plantilla en la subclase:
protected void onBeforeRender() {
add(new Label("title", getTitle()));
super.onBeforeRender();
}
protected String getTitle() {
return "template";
}
Subclase:
protected String getTitle() {
return "Home";
}
Esto funciona muy bien. Lo que no tengo claro son las "mejores prácticas" para esto. Parece que se llama a BeforeRender() en cada solicitud de la página, ¿no? Esto parece que habría mucho más procesamiento en una página si todo está en onforeRender(). Podría seguir fácilmente el ejemplo de los otros ejemplos de Wicket y agregar algunos componentes en el constructor que no quiero anular, pero luego dividí la lógica de componentes en dos lugares, algo que dudo en hacer.
Si agrego un componente que pretendo estar en todas las subclases, ¿debería agregarlo al constructor o onBeforeRender()?
Gracias. Pero si no puedo mezclar los dos, ¿cuál es la forma recomendada de anular el comportamiento de la plantilla? Llamar a métodos anulados en un constructor es una mala práctica. – gmallett
Eso sería una excepción entonces :-) – Eelco