java server faces - leccion 02 - navegacion y lenguajes de expresiones
TRANSCRIPT
![Page 1: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/1.jpg)
Eric Gustavo Coronel Castillo gcoronelc.blogspot.com [email protected]
JAVA SERVER FACES
NAVEGACIÓN Y LENGUAJE
DE EXPRESIONES
![Page 2: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/2.jpg)
Temas
Navegación
Demo
Lenguaje de Expresiones
Demo
![Page 3: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/3.jpg)
NAVEGACION
NAVEGACIÓN CLASICA
Desde el inicio de la especificación, JSF 1.x cualquier caso de navegación por trivial que fuese, requería una entrada en el fichero faces-config.xml. Cuando se navegaba de page1.xhtml a page2.xhtml en respuesta a un éxito en un componente, se introducía el siguiente código XML:
<navigation-rule>
<from-view-id>/page1.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/page2.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
3
![Page 4: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/4.jpg)
NAVEGACION
NAVEGACIÓN IMPLICITA
JSF 2.x introduce una simplificación que reduce la
complejidad en la navegación.
Introduce el concepto de navegación implícita.
Si no hay ningún caso de navegación coincidente después
de comprobar todas las reglas disponibles, el controlador de
navegación comprueba que el resultado de la acción
corresponde al identificador de una vista.
Si se encuentra una vista coincidente de los resultados de
acción, se navega de forma implícita a la vista encontrada.
4
![Page 5: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/5.jpg)
NAVEGACION
NAVEGACIÓN IMPLICITA
– En el siguiente ejemplo vemos como en el h:commandButton, en el atributo action, indicamos una cadena.
<h:commandButton
action="listTutorialsView"
value= "View Tutorials" />
– Esta no es EL, por lo que no estamos haciendo referencia a un backbean. Esta cadena correspondería con el "outcome" que serviría para determinar la regla de navegación a disparar. Pero como no hemos escrito ninguna regla de navegación ¿qué es lo que va ha hacer JSF 2.x? Sencillo, simplemente se limitará a buscar una página con el mismo nombre y la extensión .xhtml.
– Es decir, si en nuestro ejemplo hemos puesto action="listTutorialsView", JSF 2.x intentará saltar a la vista listTutorialsView.xhtml.
5
![Page 6: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/6.jpg)
NAVEGACION
EN UN METODO
6
<h:commandButton action="#{bean.doProcesar()}" value= "Procesar" />
En la página JSF
public void doProcesar(){ }
En el Managed Bean
request
response
En este caso la navegación se realiza con la página que realiza el request.
![Page 7: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/7.jpg)
NAVEGACION
EN UN METODO
7
<h:commandButton action="#{bean.doProcesar()}" value= "Procesar" />
Página JSF
public String doProcesar(){ return "paginaDestino"; }
En el Managed Bean
request
En este caso la navegación se realiza hacia la vista paginaDestino.
Página JSF: paginaDestino.xhtml
![Page 8: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/8.jpg)
DEMO
8
![Page 9: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/9.jpg)
LENGUAJE DE EXPRESIONES
EVALUACIÓN INMEDIATA
– Evalúa la expresión inmediatamente cuando la página es preparada para ser mostrada.
– Las expresiones tienen la forma: ${ expr }.
– Son de solo lectura.
– Pueden estar en la parte estática de la página y como valores de atributos en una etiqueta de JSF
– Ejemplo:
<fmt:formatNumber value="${sessionScope.factura.total}"/>
9
![Page 10: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/10.jpg)
LENGUAJE DE EXPRESIONES
EVALUACIÓN DIFERIDA
– Evalúa la expresión cuando sea necesario dentro del ciclo de vida de la página web.
– Las expresiones tienen la forma #{ expr }
– Pueden leer y actualizar propiedades de los beans (lectura/escritura)
– Solo pueden estar como valores de atributos de una etiqueta de JSF.
– Ejemplo:
<h:inputText id="name" value="#{cliente.nombre}" />
10
![Page 11: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/11.jpg)
LENGUAJE DE EXPRESIONES
EXPRESIONES DE METODOS
– Las expresiones pueden invocar métodos sin
parámetros:
– Ejemplo:
<h:commandButton
id="procesar"
value="Procesar"
action="#{factura.doProcesar()}" />
11
![Page 12: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/12.jpg)
LENGUAJE DE EXPRESIONES
EXPRESIONES DE METODOS
– Las expresiones pueden invocar métodos con
parámetros.
– Ejemplos:
<h:commandButton
action="#{negocio.doComprar('TELEVISOR')}"
value="Comprar"/>
12
![Page 13: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/13.jpg)
DEMO
13
![Page 14: JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES](https://reader031.vdocumento.com/reader031/viewer/2022020301/58998ebe1a28ab30328b490d/html5/thumbnails/14.jpg)