PDF de programación - Temas avanzados de JAVA SERVER FACES 1.2

Imágen de pdf Temas avanzados de JAVA SERVER FACES 1.2

Temas avanzados de JAVA SERVER FACES 1.2gráfica de visualizaciones

Publicado el 18 de Septiembre del 2020
79 visualizaciones desde el 18 de Septiembre del 2020
538,2 KB
32 paginas
Creado hace 10a (28/10/2010)
Temas avanzados de JAVA SERVER FACES 1.2

Por:

Carmelo Navarro Serna



1

INDICE


1 Introducción ................................................................................................................................................................ 3

2 Componentes .............................................................................................................................................................. 4

2.1 Mi primer componente JSF ...................................................................................................................................... 5

2.2 Componentes complejos .......................................................................................................................................... 6

3 ViewHandler .............................................................................................................................................................. 10

3.1 Seguridad de la aplicación Web ............................................................................................................................. 12

3.2 Ampliar funcionalidad de etiquetas JSF ................................................................................................................. 14

3.3 Incluir un componente ........................................................................................................................................... 14

4 JPA ............................................................................................................................................................................. 16

5 Diseño de una aplicación WEB .................................................................................................................................. 20

5.1 Diseño de páginas .................................................................................................................................................. 20

5.2 Diseño de clases ..................................................................................................................................................... 24

6 Conclusiones ............................................................................................................................................................. 26

7 Documentación recomendada .................................................................................................................................. 27

8 Anotaciones técnicas ................................................................................................................................................ 28

9 Código de ejemplo .................................................................................................................................................... 29



2

1 Introducción



El siguiente artículo está dirigido a personas que tienen un buen conocimiento de JSF
1.2. No voy a explicar que es JSF, para que sirve, como se configura, cual es la mejor
implementación, no voy a explicar Javadoc, ni nada por el estilo. Si quieres algo como
lo que enumerado anteriormente mejor mira otro artículo y/o tutorial; en la red hay
muchos muy buenos.

Mi intención es, partiendo de que el lector ya tiene una buena base, profundizar en
aspectos que me parecen muy importantes y que si se conocen bien proporcionan al
lector la capacidad de desarrollar una aplicación empresarial con este framework.

Para hacer más ameno el artículo introduzco pocos conceptos teóricos (intento ir al
grano) e intento que el hilo de cada apartado se siga gracias a la explicación de
ejemplos de código. Recomiendo que, al leer el artículo, cada vez que se mencione un
ejemplo se tenga en código abierto para poder visionarlo antes de seguir leyendo el
artículo.



3



2 Componentes

Una posible definición de los componentes de JSF (commandButton, dataTable) es
que son anotaciones que al encontrarlas JSF en el código de una página se traducirán
en una o varias etiquetas HTML. Este proceso de traducción es código JAVA que
además de traducir un texto (una etiqueta JSF) en otro texto (una o varias etiquetas
HTML)

…..
<f:view>
<h:inputText id="nombre" size="12" />
</f:view>
…..


ejemplo.jsp



<input id="nombre" type="text" name="nombre" size="12" />



ejemplo.faces



código JAVA de traducción (Handler de JSF)

puede llamar a otro código JAVA (métodos públicos de un Managed Bean) en el
proceso

<f:view>

<h:inputText id="nombre"

size="12"
value="#{ejemplo.nombre}"/>



<input id="nombre" type="text" name="nombre"



size="12" value="ejemplo" />



</f:view>
…..



ejemplo.jsp



ejemplo.faces

…….

public String getNombre(){

return "ejemplo";
}
…….


Ejemplo.java



código JAVA de traducción (Handler de JSF)

Por lo que si hay alguna etiqueta HTML que queremos conseguir que pueda utilizar las
funcionalidades que ofrecen los Managed Bean y no se pueda obtener utilizando las
etiquetas JSF nativas o tenemos un conjunto de etiquetas HTML que forman una
funcionalidad muy común en un entorno web (ejemplo; un input con un List pueden ser
un buscador) estamos ante unos ejemplos clarísimos de “Creación de un componente
JSF”.



4

2.1 Mi primer componente JSF

Un crimen, en mi opinión claro, es que no exista un componente nativo de JSF que
sea un div. Por lo que para ilustrar un ejemplo de cómo crear un componente para
obtener una etiqueta HTML que vamos a crear un componente e:divEjemplo. El
código de ejemplo lo puedes encontrar en \fuentes\etiquetaSimple.rar (mirar la lista de
ficheros en el capítulo 9).



1º Crear una librería de etiquetas:

Voy a crear una librería de etiquetas (tld) donde definir la etiqueta divEjemplo y se
pueda utilizar en el código fuente de una página.

….
<tag>
<name>divEjemplo</name>
<tag-class>ejemplo.etiqueta.DivEtiqueta</tag-class>
<attribute>
<name>estilo</name>
<description>estilo</description>
</attribute>
<body-content>JSP</body-content>
</tag>
….

- Name: Nombre de la etiqueta por la se identifica la etiqueta
- Tag-class: nombre de la clase java donde se implementa el componente etiqueta.
- Attribute: atributo aceptado por la etiqueta.



2º Crear una clase java que implemente la etiqueta.

Esta clase debe extender de una clase implementación “Tag” (como en el ejemplo
javax.faces.webapp.UIComponentELTag). Se deben definir como mínimo los
siguientes métodos:



- getComponentType: cadena que identifica el tipo de componente faces que
estamos utilizando. Si no se indica uno nativo habrá que definirlo en el faces-
config.xml (de hecho es lo que vamos a hacer).

- getRendererType: si es distinto de nulo indica que la etiqueta se pinta de una

manera determinada como por ejemplo en texto.
setProperties: esto es una sobrecarga del método original por lo que lo primero es
llamar al objeto super. La finalidad de sobrecargar este método es añadir en la
lista de atributos de la etiqueta que estamos creando las propiedades que hemos
definido.
setXXXX y getXXXX: se deben definir los getters y setters de todas las
propiedades que se han definido en la nueva etiqueta.


-

-



5

3º Definir el tipo de componente en el faces-config.xml y el tipo
ha de coincidir con la cadena que devuelve el método
getComponentType de la implementación de la nueva etiqueta.


4º Crear una clase java que implemente el componente de la
etiqueta.

Esta clase debe extender de la clase UIOutput. Se deben definir como mínimo los
siguientes métodos:

- encodeBegin: Defines que se va a renderizar antes de que se renderice el

- encodeEnd: Defines que se va a renderizar después de que se renderice el



contenido de la nueva etiqueta.

contenido de la nueva etiqueta.



Página JSF



…..



<divEjemplo>



Como estas?



</divEjemplo>
…..



encodeBegin



o abre div
o escribe “saludos,”



encodeEnd



o abre br
o cierra br
o escribe “Bien?”
o cierra div



Página HTML

saludos, Como estas?



…..
<div>



<br>
</br>


Bien?



</div>



2.2 Componentes complejos

Ahora voy a definir un componente más complejo. Voy a suponer que estoy
desarrollando una aplicación web de gestión de un colegio donde en la parte izquierda
tenemos un menú para acceder a los diversos individuos que están relacionados con
el colegio (alumnos, profesores y padres). Cada vez que pinchamos en una opción de
menú aparece en el frame central un buscador por nombre, el resultado de la
búsqueda nos dará una lista de individuos que se pueden seleccionar (pinchando
encima) y realizar sobre cualquiera de ellos una de las acciones que se ejecutan al
pulsar los botones de la parte inferior.



6



Como la búsqueda es igual siempre y solo cambian las acciones y el origen de datos
de las búsquedas voy a definir un etiqueta e:buscador que t
  • Links de descarga
http://lwp-l.com/pdf18224

Comentarios de: Temas avanzados de JAVA SERVER FACES 1.2 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad