...
Deberá tener especificado un nombre (anotación @Name) de bean para que pueda ser accedido por la vista, así como también un scope (anotacion @Scope) que indicará cuanto tiempo ha de mantener en memoria su información lo que implica, a su vez, que este Bean debe implementar la interfaz Serializable.
...
| Bloque de código | ||
|---|---|---|
| ||
@Name("manejadorAnuncios") @Scope(ScopeType.CONVERSATION) public class ManejadorAnuncios implements Serializable { .... .... } |
Una vez creado el Bean, deberemos incluir los Beans o EJB externos que utilicemos, haciendo uso de la anotación @In. Es importante recordar que el Log también debe importarse.
| Bloque de código | ||
|---|---|---|
| ||
@Logger private Log log; |
...
@In (value="org.jboss.seam.security.identity") private UmuIdentity identiy; |
En caso de no estar seguros de si los Beans que importamos estarán o no creados, añadimos el parámetro create = true a nuestras anotaciones @In.
| Bloque de código | ||
|---|---|---|
| ||
@In(create = true) private ServicioAnuncios servicioAnuncios; |
Una vez incluidos los Beans que necesitaremos importar, declaramos las variables que usaremos para dar servicio con nuestro Bean. Una vez creadas debemos crear un método get y otro set para cada una de ellas. Estos métodos tienen que tener una sintaxis concreta ya que Seam usa esta sintaxis para poder obtener los valores en la parte de la vista.
...
Una vez definidas las variables de las que haremos uso debemos preparar nuestro manejador, para ello haciendo uso de la anotación @Create sobre un método public void, estableceremos los valores por defecto que ha de tener el bean cuando se cree.
| Bloque de código | ||
|---|---|---|
| ||
@Create public void inicializaBuscador() { refrescarAnuncios(); buscadorAnuncios = new AnuncioLazyDataModel(); buscadorComentarios = new ComentarioLazyDataModel(); |
...
Clase gestora de la tabla del maestro
...
loadPage( first, pageSize, multiSortMeta,filters ): Carga la lista de los siguientes objetos a visualizar a partir de los parámetros pasados en su cabecera.
| Bloque de código | ||
|---|---|---|
| ||
public class AnuncioLazyDataModel extends |
...
FundeWebLazyDataModel<Anuncio> { |
...
@Override protected |
...
List<Anuncio> loadPage( int first, int pageSize, |
...
List<SortMeta> multiSortMeta, |
...
Map<String, |
...
Object> filters ) { |
...
ResultQuery<Anuncio> resultQuery = getServicioAnuncios().obtenerComunicacionesDto( filters, first, pageSize, PrimeFacesUtils.sortMetaToString(multiSortMeta) ); setRowCount( resultQuery.getResultCount().intValue() ); return resultQuery.getResultList(); } |
...
private ServicioAnuncios getServicioAnuncios() { return (ServicioAnuncios) Component.getInstance( ServicioAnuncios.NAME, ScopeType.STATELESS ); } |
...
} |
| Info |
|---|
En las clases Lazy, como manera excepcional, podemos utilizar el DAS directamente si queremos, en lugar del servicio. |
En las clases Lazy, como manera excepcional, podemos utilizar el DAS directamente si queremos, en lugar del servicio.
...
También permite establecer filtros (parámetros) externos, si no se utiliza el filtrado de columna del DataTable, utilizando los siguientes métodos:
| Bloque de código | ||
|---|---|---|
| ||
/** * Obtiene los filtros (parametros) externos, cuando no se utiliza el filtrado de columna incluido en el componente * DataTable. * * @return Map<String, Object> * - Los filtros externos. */ public |
...
Map<String, |
...
Object> getExternalFilters() { return externalFilters; } |
...
/** * Establece los filtros (parametros) externos, cuando no se utiliza el filtrado de columna incluido en el componente * DataTable. * * @param externalFilters - un Map<String, Object> con los filtros externos. */ public void setExternalFilters( |
...
Map<String, |
...
Object> externalFilters ) { this.externalFilters = externalFilters; |
...
Modificación en el POM del Módulo Web
...
Abrimos el fichero pom.xml del módulo y buscamos la dependencia jboss-seam-ui.
Cambios el scope a compile.
Quedando:
| Bloque de código |
|---|
|
...
<dependency> |
...
<groupId>org.jboss. |
...
seam</ |
...
groupId> |
...
<artifactId>jboss-seam- |
...
ui</ |
...
artifactId> |
...
<scope>compile</scope> </ |
...
dependency> |
