Taller integracion jsf spring

8,764 views

Published on

Configuración de un ambiente de desarrollo con Prime faces (JSF), Spring, maven

código: https://github.com/odraudek99/taller-jsf-spring

Published in: Software
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,764
On SlideShare
0
From Embeds
0
Number of Embeds
2,385
Actions
Shares
0
Downloads
237
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Taller integracion jsf spring

  1. 1. Taller Spring + Prime Faces Eduardo Granados Correo: odraudek99@gmail.com
  2. 2. Herramientas Eclipse IDE o STS Maven >= 3.0 Servidor de aplicaciones (vMware vFabric). Spring 3.1.x PrimeFaces 3.0 JDK >= 1.6.0
  3. 3. Creación del Proyecto Maven Crear un Nuevo Proyecto tipo Maven
  4. 4. Creación del Proyecto Maven En el IDE (STS o Eclipse) Crear un Nuevo Proyecto tipo Maven
  5. 5. Creación del Proyecto Maven Dar click en “Siguiente” y se selecciona: “Create a simple project”, esto creara un proyecto vacío de Maven
  6. 6. Creación del Proyecto Maven Dar click en “siguiente”. Llenamos los campos: − GroupId − ArtifactId − Packaging Finalizar
  7. 7. Estructura Proyecto Maven Al terminar se mostrará el proyecto “jsf-spring” con la siguiente estructura:
  8. 8. Estructura Proyecto Maven Maven tiene cuatro carpetas por default: − Src/main/java:  Aqui se guardan las clases Java, debajo de esta se agregan los paquetes requeridos. − Src/main/resources  Aqui se guardan los recursos (configuraciones xml, imagenes). − Src/test/java  Aqui se almacenan clases para realizar test al código fuente. − Src/test/resources  Almacena recursos para los test.
  9. 9. Archivo POM El contenido inicial del pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>taller.java</groupId> <artifactId>jsf-spring</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> </project>
  10. 10. Probando el Proyecto Simple Para validar que el proyecto levanta vamos a crear una página simple, para ello debemos crear lo siguiente: − Dentro de src/main/webapp crear un directorio llamado “WEB-INF”. − Dentro de WEB-INF crear un archivo xml llamado “web.xml”.
  11. 11. Probando el Proyecto Simple La estructura del proyecto debe quedar como se muestra:
  12. 12. Probando el Proyecto Simple Agregamos el siguiente contenido al archivo web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="SPI" version="2.5"> <display-name>jsf-spring</display-name> <welcome-file-list> <welcome-file>hola.html</welcome-file> </welcome-file-list> </web-app>
  13. 13. Probando el Proyecto Simple Dentro de webapp creamos una página html simple, llamada: “hola.html” y Finalizamos
  14. 14. Probando el Proyecto Simple Nuestro html simple puede quedar asi: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>Hola Mundo</h1> </body> </html>
  15. 15. Probando el Proyecto Simple Guardamos el proyecto y ejecutamos el proyecto en el servidor: − Click derecho en el Proyecto  Run As/ Run on Server − Damos y damos click en Finalziar.
  16. 16. Probando el Proyecto Simple Abrimos un navegador de Internet y entramos a: http://localhost:8080/jsf-spring/ nos debe mostrar:
  17. 17. Probando el Proyecto Simple Con esto hemos logrado arrancar una aplicación simple de HTML con Maven
  18. 18. Segunda Parte Ahora continuaremos con la configuración de nuestro proyecto con la integración de Spring y PrimeFaces.Para ello debemos detener el servidor de aplicaciones.
  19. 19. Configurando Prime Faces Agregamos las siguientes propiedades al archivo pom.xml <properties> <primefaces-version>3.4</primefaces-version> </properties>
  20. 20. Configurando Prime Faces Se agrega el repositorio de PrimeFaces: <repositories> <repository> <id>prime-repo</id> <name>PrimeFaces Maven Repository</name> <url>http://repository.primefaces.org</url> <layout>default</layout> </repository> </repositories>
  21. 21. Configurando Prime Faces Se agregan las dependencias de PrimeFaces:(1/2) <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>${primefaces-version}</version> </dependency> <!-- JSF dependencies --> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.1.6</version> </dependency>
  22. 22. Configurando Prime Faces Se agregan las dependencias de PrimeFaces:(2/2) <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
  23. 23. Configurando Prime Faces  El contenido del archivo web.xml se cambia por lo siguiente (1/2):<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="SPI" version="2.5"> <display-name>jsf-spring</display-name> <welcome-file-list> <welcome-file>hola.xhtml</welcome-file> </welcome-file-list>
  24. 24. Configurando Prime Faces  El contenido del archivo web.xml se cambia por lo siguiente (2/2): <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping></web-app>
  25. 25. Configurando Prime Faces  Creamos la clase Java “MiControlador.java” con el siguiente contenido, en el paquete “jsfspring”, agregar sets y gets de nombre y saludo.@ManagedBean(name = "miControlador")@ViewScopedpublic class MiControlador implements Serializable { private static final long serialVersionUID = 1L; private String nombre; private String saludo; public void saluda() { if (nombre != null) { saludo = "Hola " + nombre; } else { saludo = "hola tú"; } }}
  26. 26. Configurando Prime Faces Creamos el archivo de configuración de JSF, un xml en src/main/resources llamado: “faces-config.xml” ya agregamos el siguiente contenido:<?xml version="1.0" encoding="UTF-8"?><faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"></faces-config>
  27. 27. Configurando Prime Faces Creamos un archivo llamado “hola.xhtml” en scr/main/webapp y le agregamos el siguiente contenido:<!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://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"><h:head></h:head><h:body> <h:form id="form"> <h:panelGrid columns="2"> <h:outputLabel value="Nombre: " for="nombre" /> <p:inputText value="#{miControlador.nombre}" id="nombre" title="nombre"required="true"/> </h:panelGrid> <p:inputText value="#{miControlador.saludo}" readonly="true"/> <h:commandButton value="Saluda" actionListener="#{miControlador.saluda}"/> </h:form></h:body></html>
  28. 28. Configurando Prime Faces Levantamos el Proyecto: − Click derecho en el proyecto − Run As/Maven Clean − Run As/Maven Install − Run As/Run on server − Ingresamos a http://localhost:8080/jsf- spring/hola.xhtml
  29. 29. Configurando Prime Faces Probamos nuestra pantalla:
  30. 30. Configurando Prime Faces Hemos logrado crear y correr nuestro proyecto web con PrimeFaces, ahora agregaremos spring framework para inyección de dependencias.
  31. 31. Configurando Spring Framework Para agregar las dependencias de spring abrimos nuestro archivo pom.xml y agregamos la siguiente propiedad:<spring-version>3.1.1.RELEASE</spring-version>
  32. 32. Configurando Spring FrameworkAgregamos las siguientes dependecias en el pom.xml<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring-version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring-version}</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> </dependency>
  33. 33. Configurando Spring FrameworkCreamos la Interfaz “NegocioBean” dentro del paquete “jsfspring.negocio”package jsfspring.negocio;public interface NegocioBean { public String saluda(String nombre);}
  34. 34. Configurando Spring FrameworkCreamos la clase: NegocioBeanImpl.java en el paquete: jsfspring.negocio.implpackage jsfspring.negocio.impl;import java.io.Serializable;import jsfspring.negocio.NegocioBean;public class NegocioBeanImpl implements NegocioBean, Serializable {private static final long serialVersionUID = 1L; public String saluda(String nombre) { if (nombre != null) { return "Hola " + nombre; } return "hola tú"; }}
  35. 35. Configurando Spring FrameworkAgregamos las siguientes lineas al web.xml<context-param><param-name>contextConfigLocation</param-name><param-value> /WEB-INF/applicationContext.xml</param-value></context-param><listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener>
  36. 36. Configurando Spring FrameworkAl archivo faces-config.xml<application><!-- Spring --><el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver></application>
  37. 37. Configurando Spring FrameworkDentro de src/main/webapp/WEB-INF creamos un archivo llamado “applicationContext.xml”, con el contenido siguiente:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.1.xsd"><context:annotation-config /><context:component-scan base-package="jsfspring.negocio.impl" /><bean id="negocioBean" class="jsfspring.negocio.impl.NegocioBeanImpl" /></beans>
  38. 38. Configurando Spring FrameworkModificamos nuestro controlador de la página, agregando:@ManagedProperty(value = "#{negocioBean}")private NegocioBean negocioBean;Modificamos el método saluda():public void saluda() { saludo = negocioBean.saluda(nombre);}Agregar los métodos set y get de negocioBean
  39. 39. Configurando Spring Framework
  40. 40. Configurando Spring Framework Levantamos el Proyecto: − Click derecho en el proyecto − Run As/Maven Clean − Run As/Maven Install − Run As/Run on server − Ingresamos a http://localhost:8080/jsf- spring/hola.xhtml
  41. 41. Configurando Spring Framework Probamos nuestra pantalla:
  42. 42. Código Fuente CompletoSe adjunta el código completo del ejemplo: jsf-spring.rar
  43. 43. INTEGRACIÓNMAVEN + PRIMEFACES + SPRING. GRACIAS. Eduardo Granados. odraudek99@gmail.com

×