PDF de programación - Sesión 2: MVC en JSF - JavaServer Faces

Imágen de pdf Sesión 2: MVC en JSF - JavaServer Faces

Sesión 2: MVC en JSF - JavaServer Facesgráfica de visualizaciones

Publicado el 22 de Enero del 2019
680 visualizaciones desde el 22 de Enero del 2019
1,9 MB
53 paginas
Creado hace 12a (01/01/2012)
Experto Universitario Java Enterprise

JavaServer Faces

•Sesión 2: MVC en JSF

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Índice
• Vista: componentes para la GUI
• Modelo: beans de respaldo: backing beans
• Validación, conversión y tratamiento de errores
• Controlador: Acciones y navegación entre páginas
• Expresiones EL

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

2

Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Funcionamiento básico de JSF

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

3

Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Un primer ejemplo

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

4

Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Vista
• En Struts la vista se define mediante páginas y la
aplicación se mueve de una página a otra.
• En JSF la vista se define mediante vistas (view) que
contienen componentes.
• El controlador puede decidir qué componentes son
visibles, e ir mostrando y escondiendo componentes.
• La vista se define mediante una página HTML con
etiquetas especiales <f:> (componentes núcleo de
JSF) y <h:> (componentes HTML)

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

5

Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Vista: página JSF

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Fichero selec-cursos.xhtml
6

Sesión 2

<f:view> <h:form> <table> <tr> <td>Dirección e-mail:</td> <td><h:inputText value="#{selecCursosBean.email}" /></td> </tr> <tr> <td>Tecnologías Java de interés</td> <td><h:selectManyCheckbox value="#{selecCursosBean.cursosId}"> <f:selectItem itemValue="JSP" itemLabel="Servlets y JSP" /> <f:selectItem itemValue="Struts" itemLabel="Struts" /> <f:selectItem itemValue="JSF" itemLabel="JSF" /> <f:selectItem itemValue="JPA" itemLabel="JPA" /> </h:selectManyCheckbox></td> </tr> </table> <h:commandButton value="Enviar" action="#{selecCursosHandler.grabarDatosCursos}"/> </h:form></f:view>Beans gestionados Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Modelo: Beans gestionados

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

7

public class SelecCursosBackingBean { private String email; private String[] cursosId; public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String[] getCursosId() { return cursosId; } public void setCursosId(String[] cursosId) { this.cursosId = cursosId; }} Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise
Declaración en faces-config.xml

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

8

...<managed-bean> <managed-bean-name>selecCursosBB</managed-bean-name> <managed-bean-class> jtech.jsf.SelecCursosBackingBean </managed-bean-class> <managed-bean-scope>session</managed-bean-scope></managed-bean><managed-bean> <managed-bean-name>selecCursosHandler</managed-bean-name> <managed-bean-class>jtech.jsf.SelecCursosHandler </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> <managed-property> <property-name>datosCursos</property-name> <value>#{selecCursosBB}</value> </managed-property></managed-bean>... Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Declaración en JSF 2.0 (contenedor web)
• Anotaciones en la propia clase Java

Nombre por defecto:
selecCursosBean

Definimos nombre del
bean

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

9

@ManagedBean@SessionScopedpublic class SelecCursosBean { private String email; private String[] cursosId;...@ManagedBean(name=“selecCursos”)@SessionScopedpublic class SelecCursosBean { private String email; private String[] cursosId;... Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Declaración en JSF 2.0 (serv. aplicaciones)
• Anotaciones en la propia clase Java

Nombre por defecto:
selecCursosBean

Definimos nombre del
bean

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

10

@Named@SessionScopepublic class SelecCursosBean { private String email; private String[] cursosId;...@Named(“selecCursos”)@SessionScopepublic class SelecCursosBean { private String email; private String[] cursosId;... Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Ámbito de vida de los beans gestionados (I)
• Petición: Se define con el valor request en el faces-config.xml o
con la anotación @RequestScoped en la clase. El bean se asocia a una
petición HTTP. Cada nueva petición crea un nuevo bean y lo asocia con la
página. Se usa para el paso de mensajes que no sea necesario propagar
a lo largo de la aplicación.

• Sesión: Se define con el valor session en el faces-config.xml o
con la anotación @SessionScoped en la clase. El bean se asocia a una
sesión definida con el API de Servlets. Se usa paraconservar elementos
que queremos mantener a lo largo de la aplicación como, por ejemplo: un
usuario logueado.

• Aplicación: Se define con el valor application y con la anotación

@ApplicationScoped. Los beans con este ámbito viven asociados a la
aplicación. Definen singletons que se crean e inicializa sólo una vez, al
comienzo de la aplicación. Se usa para guardar características comunes
compartidas y utilizadas por el resto de los beans de la aplicación (ej:
valor del IVA en un e-commerce)

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

11

Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Ámbito de vida de los beans gestionados (II)
• Vista: Se define con el valor view en el faces-config.xml o la

anotación @ViewScoped en la clase. Un bean en este ámbito persistirá
mientras no naveguemos a otra vista. Se suele usar en páginas Ajax.

• Custom: Se define con la anotación @CustomScoped(“#{expt}”) en

la clase. Definimos un mapa en el que nuestra aplicación será la
responsable de la eliminación de los elementos. Ejemplo: un ámbito
“registro”, donde al finalizar el proceso de registro se eliminarán los datos
introducidos por el usuario.

• Conversación: Se define con la anotación @ConversationScoped.
Ligado a una ventana o pestaña concreta del navegador. Una sesión
puede mantener varias conversaciones en distintas páginas. Es propio de
CDI, no de JSF.

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

12

Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Inicialización de los beans (I)
• En el constructor de la clase Java

• En el fichero faces-config con expresiones EL

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

13

public class SelecCursosBean { private String email; private String[] cursosId; public SelecCursosBean() { email="Introduce tu e-mail"; } ...<managed-bean> <managed-bean-name>selecCursosBean</managed-bean-name> <managed-bean-class>org.especialistajee.jsf.SelecCursosBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> <managed-property> <property-name>email</property-name> <value>Introduce tu e-mail</value> </managed-property></managed-bean> Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Inicialización de los beans (II)
• Con JSF 2.0 podemos combinar ambos métodos

• Expresiones EL

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

14

@ManagedBean@RequestScopedpublic class SelecCursosBean { @ManagedProperty(value="Introduce tu e-mail") private String email; private String[] cursosId; ...@ManagedBean@RequestScopedpublic class SelecCursosBean { @ManagedProperty(value="#{1+2+3+4}") private String email; private String[] cursosId; ... Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Relaciones entre beans (I)
• En el fichero de configuración, mediante expresiones
EL

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

15

<managed-bean><managed-bean-name>entradaBean</managed-bean-name><managed-bean-class>org.especialistajee.beans.EntradaBean</managed-bean-class><managed-bean-scope>session</managed-bean-scope><managed-property><property-name>usuario</property-name><value>#{usuarioBean}</value></managed-property></managed-bean> Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Relaciones entre beans (II)
• Las expresiones EL también permiten asociar un
bean a otro en tiempo de inicialización

Componentes de presentación

© 2012-2013 Depto. Ciencia de la Computación e IA

Sesión 2

16

@ManagedBean@RequestScopedpublic class SelecCursosController { @ManagedProperty(value="#{selecCursosBean}") private SelecCursosBean datosCursos; public void setDatosCursos(SelecCursosBean datosCursos) { this.datosCursos = datosCursos; } public SelecCursosBean getDatosCursos() { return datosCursos; } ... Experto Universitario Java Enterprise
Especialista Universitario Java Enterprise

Relaciones entre beans (III)
• Si nuestro servidor tiene soporte de CDI, la opción
recomendada es:

Component
  • Links de descarga
http://lwp-l.com/pdf14945

Comentarios de: Sesión 2: MVC en JSF - JavaServer Faces (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