JavaEE 7: Adios ManagedBean, Bienvenido CDI
En la reciente versión de Java EE7, los ManagedBean ( o también llamados Bean Administrados) ya no se usarán. Estos beans se usaban como Backend de las páginas JSF. En su lugar, se usarán inyección de dependencias, ya que se instanciarán de la misma manera como lo hacía los ManagedBean.
Un cambio adicional en JavaEE7, es que ya no se va a necesitar del archivo beans.xml cuando se quiera usar CDI.
Probemos con el clásico "Hola mundo", para ver cómo funciona.
Tenemos una clase llamada Saludo.java, que contiene el siguiente código:
Notemos que la notación
Al usar @ManagedBean hacíamos que la clase solo sea usado para JSF. Por otro lado, al usarlo como CDI, la instanciación de la clase puede ser utilizada en cualquier parte sin necesidad que sea un JSF.
Ahora, veamos como será nuestro JSF.
Un cambio adicional en JavaEE7, es que ya no se va a necesitar del archivo beans.xml cuando se quiera usar CDI.
Probemos con el clásico "Hola mundo", para ver cómo funciona.
Tenemos una clase llamada Saludo.java, que contiene el siguiente código:
package com.apuntesdejava.cdi; import javax.enterprise.context.RequestScoped; import javax.inject.Named; @Named @RequestScoped public class Saludo { private String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getSaludo() { if (nombre != null && !nombre.isEmpty()) { return "Hola " + nombre; } return null; } }
Notemos que la notación
@RequestScope
es del paquete, y no de faces.Al usar @ManagedBean hacíamos que la clase solo sea usado para JSF. Por otro lado, al usarlo como CDI, la instanciación de la clase puede ser utilizada en cualquier parte sin necesidad que sea un JSF.
Ahora, veamos como será nuestro JSF.
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>Facelet Title</title> </h:head> <h:body> <h:form> <h2>CDI en JSF</h2> Escriba su nombre:<h:inputText value="#{saludo.nombre}" /> <br/> <h:commandButton value="Saludar!" /> <p> <h:outputText value="#{saludo.saludo}" /> </p> </h:form> </h:body> </html>Luego veremos más ejemplos de CDI con JSF 2.2
تعليقات
إرسال تعليق
Si quieres hacer una pregunta más específica, hazla en los foros que tenemos habilitados en Google Groups
Ah! solo se permiten comentarios de usuarios registrados. Si tienes OpenID, bienvenido! Puedes obtener su OpenID, aquí: http://openid.net/