| Tabla de contenidos |
|---|
Un bean de respaldo es una clase Java que se comunica con uno o varios formularios (xhtml) de la capa de la vista. Esta clase Java recoge la información introducida en dichos formularios y la procesa, lanzándolos trasladándola a la capa de la lógica de aplicación para que sean procesadossea procesada. A su vez comparte estos datos con la capa de la vista para que se muestren al usuario y . También es la encargada de realizar las tareas de validación y control de los datos introducidos. De , de igual forma que implementa comportamientos de la vista para determinar condiciones para mostrar campos, calcular el contenido de otros, habilitar/deshabilitar etc…
...
Para crear un Bean de respaldo debemos hacer uso de la anotación @Name proporcionada por Seam, la cual habilita nuestra clase Java para ser inyectada en otros contextos. Esto permitirá que, mediante expresiones EL en ,expresiones del tipo #{...}, en la capa de la vista se acceda a nuestro Bean de respaldo a través del nombre dado en la anotación @Name.
| Bloque de código | ||||
|---|---|---|---|---|
| ||||
@Name("manejadorMapas" ManejadorMapas.ID) @Scope(ScopeType.CONVERSATION) public class ManejadorMapas implements Serializable{ public static final String ID ="manejadorMapas"; private MapModel modeloMapa; private List<Marker> marcadores; ... ... public MapModel getModeloMapa() { return modeloMapa; } public void setModeloMapa(MapModel modeloMapa) { this.modeloMapa = modeloMapa; } public List<Marker> getMarcadores() { return marcadores; } public void setMarcadores(List<Marker> marcadores) { this.marcadores = marcadores; } |
...
@Name: Esta anotación hace que Seam sea capaz de buscar e inyectar esta clase Java convertida a Bean done sea necesario, para ello esta anotación debe ir completada con un nombre para localizarlo. Normalmente es el mismo nombre de la clase con la primera letra en minúscula.
Todas las propiedades que queremos que sean accesibles en la parte de la vista, han de tener un método get/set para que Seam sea capaz de insertar y recuperar los valores de las propiedades (salvo en las propiedades booleanas que los métodos serán set e is).
Los métodos del Bean de respaldo que se quieran poder ejecutar desde la vista han de ser públicos.
En la parte de la vista para acceder a cualquier propiedad o método, se debe crear una expresión EL #{ … }, dentro de la expresión EL debemos invocar a la propiedad o la clase poniendo el nombre de nuestro Bean (anotado en la etiqueta @Name), y el nombre del método o propiedad . que queremos referenciar Ej: model=“#{manejadorMapas.modeloMapa}”
Si un método tiene parámetros de entrada se le pueden añadir dentro de la expresión EL. Ej: model=“#{manejadorMapas.hazAlgo('Texto')}”.
Los Beans deben tener un constructor vacío para que Seam sea capaz de crearlo si no existe.
- Si queremos que nuestro Bean se inicialice cuando se cree, debemos crear un método público y void con la anotación @Create
Bloque de código language java @Create public void inicializa Manejador(){ ... ... }
En este punto, nuestra clase Java, ya es un Bean de respaldo y puede ser accedido desde cualquier vista e inyectado en otros Beans, si hiciera falta. Ahora es turno de especificar la vida de este Bean. Para ello utilizaremos la anotación @Scope donde especificaremos el ámbito de este Bean. La información necesaria sobre los ámbitos podemos consultarla en la entrada de la wiki (Url de la Wiki) Tipos de ámbitos en FundeWeb junto con la guía
(Url de la Wiki) Elegir el ámbito correcto.
...