SlideShare a Scribd company logo
1 of 42
Download to read offline
Usando Git Java Server Faces Integrando JSF
Herramientas de trabajo (3)
Miguel Angel Pi˜na Avelino
Ingenier´ıa de Software,
Facultad de Ciencias, UNAM
2 de septiembre de 2018
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
´Indice
1 Usando Git
2 Java Server Faces
3 Integrando JSF
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Usando Git
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Agregando repositorios remotos
Hay que crear un repositorio remoto (en github) y agregamos la
siguiente instrucci´on:
$ git remote add origin https://github.com/miguelpinia/something.git
Hay que remplazar la url por la del repositorio. Una vez agregado
el repositorio remoto, hay que empujar todos los cambios que
hemos hecho en nuestro repositorio local:
git push -u origin master
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Obteniendo cambios desde repositorio
Supongamos que alguien hizo cambios en el repositorio y los
empuj´o al repositorio, para obtener esos cambios, ejecutamos la
instrucci´on:
$ git pull
Para ver cuales fueron los cambios que se hicieron entre el ´ultimo
commit que ten´ıamos y el que obtuvimos ejecutamos:
$ git diff HEAD
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Creando ramas
Para agregar cambios sin modificar el contenido de la rama
principal (rama master), vamos a crear una nueva rama donde
podamos trabajar. Para hacer esto, realizamos lo siguiente:
$ git checkout -b mi_nueva_rama
A partir de aqu´ı podemos realizar nuevos cambios. Para regresar o
moverse entre ramas, usando el comando checkout sin banderas.
$ git checkout master
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Mezclando ramas
Despu´es de realizar una serie de cambios, es necesario que se
mezclen con la rama principal. Una forma limpia de hacerlo, es
haciendo un rebase de la rama con la que estamos trabajando
respecto a la que vamos a mezclar.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Mezclando ramas
La acci´on de rebase, se refiere a desplazar todos los cambios que
existan en la rama a mezclar y que no se han integrado con la
rama que estamos trabajando.
$ git checkout mi_nueva_rama
$ git rebase master
$ git checkout master
$ git merge --no-ff mi_nueva_rama
$ git push
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Eliminando ramas
La forma sencilla de eliminar ramas dentro de git es la siguiente:
$ git branch -d mi_nueva_rama
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
JSF es un framework MVC (Modelo-Vista-Controlador) basado en
el API de Servlets que proporciona un conjunto de componentes en
forma de etiquetas definidas en p´aginas XHTML mediante el
framework Facelets. Antes de la especificaci´on actual se utilizaba
JSP para componer las p´aginas JSF.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Entrando un poco m´as en detalle, JSF proporciona las siguientes
caracter´ısticas destacables:
• Definici´on de las interfaces de usuario mediante vistas que
agrupan componentes gr´aficos.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Entrando un poco m´as en detalle, JSF proporciona las siguientes
caracter´ısticas destacables:
• Definici´on de las interfaces de usuario mediante vistas que
agrupan componentes gr´aficos.
• Conexi´on de los componentes gr´aficos con los datos de la
aplicaci´on mediante los denominados beans gestionados.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Entrando un poco m´as en detalle, JSF proporciona las siguientes
caracter´ısticas destacables:
• Definici´on de las interfaces de usuario mediante vistas que
agrupan componentes gr´aficos.
• Conexi´on de los componentes gr´aficos con los datos de la
aplicaci´on mediante los denominados beans gestionados.
• Conversi´on de datos y validaci´on autom´atica de la entrada del
usuario.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Entrando un poco m´as en detalle, JSF proporciona las siguientes
caracter´ısticas destacables:
• Definici´on de las interfaces de usuario mediante vistas que
agrupan componentes gr´aficos.
• Conexi´on de los componentes gr´aficos con los datos de la
aplicaci´on mediante los denominados beans gestionados.
• Conversi´on de datos y validaci´on autom´atica de la entrada del
usuario.
• Navegaci´on entre vistas.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Entrando un poco m´as en detalle, JSF proporciona las siguientes
caracter´ısticas destacables:
• Definici´on de las interfaces de usuario mediante vistas que
agrupan componentes gr´aficos.
• Conexi´on de los componentes gr´aficos con los datos de la
aplicaci´on mediante los denominados beans gestionados.
• Conversi´on de datos y validaci´on autom´atica de la entrada del
usuario.
• Navegaci´on entre vistas.
• Internacionalizaci´on
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Entrando un poco m´as en detalle, JSF proporciona las siguientes
caracter´ısticas destacables:
• Definici´on de las interfaces de usuario mediante vistas que
agrupan componentes gr´aficos.
• Conexi´on de los componentes gr´aficos con los datos de la
aplicaci´on mediante los denominados beans gestionados.
• Conversi´on de datos y validaci´on autom´atica de la entrada del
usuario.
• Navegaci´on entre vistas.
• Internacionalizaci´on
• A partir de la especificaci´on 2.0 un modelo est´andar de
comunicaci´on Ajax entre la vista y el servidor.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Otras caracter´ısticas
Otras caracter´ısticas que tiene JSF son:
• Soporte para Ajax
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Otras caracter´ısticas
Otras caracter´ısticas que tiene JSF son:
• Soporte para Ajax
• Componentes m´ultiples
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Otras caracter´ısticas
Otras caracter´ısticas que tiene JSF son:
• Soporte para Ajax
• Componentes m´ultiples
• Integraci´on con Facelets
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Otras caracter´ısticas
Otras caracter´ısticas que tiene JSF son:
• Soporte para Ajax
• Componentes m´ultiples
• Integraci´on con Facelets
• Gesti´on de recursos (hojas de estilo, im´agenes, etc.)
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Otras caracter´ısticas
Otras caracter´ısticas que tiene JSF son:
• Soporte para Ajax
• Componentes m´ultiples
• Integraci´on con Facelets
• Gesti´on de recursos (hojas de estilo, im´agenes, etc.)
• Facilidad de desarrollo y despliegue
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Como se ejecuta
Tal y como hemos comentado, JSF se ejecuta sobre la tecnolog´ıa
de Servlets y no requiere ning´un servicio adicional, por lo que para
ejecutar aplicaciones JSF s´olo necesitamos un contenedor de
servlets tipo Tomcat o Jetty.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Java Server Faces
Implementaciones
JSF es una especificaci´on y, como tal, existen distintas
implementaciones. Sun siempre proporciona una implementaci´on
de referencia de las tecnolog´ıas Java, que incluye en el servidor de
aplicaciones GlassFish. En el caso de JSF, la implementaci´on de
referencia s las dos implementaciones m´as usadas son:
• Mojarra
• MyFaces
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Primefaces
PrimeFaces es una librer´ıa de componentes para JavaServer Faces
(JSF) de c´odigo abierto que cuenta con un conjunto de
componentes enriquecidos que facilitan la creaci´on de las
aplicaciones web. Primefaces est´a bajo la licencia de Apache
License V2. Una de las ventajas de utilizar Primefaces, es que
permite la integraci´on con otros componentes como por ejemplo
RichFaces.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Documentaci´on
JavaServer Faces Technology
https://docs.oracle.com/javaee/7/tutorial/jsf-intro.htm
Primefaces
http://primefaces.org/
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF en Maven
Para ejemplificar la integraci´on de JSF y la facilidad con la que se
puede operar con JSF, vamos a implementar un formulario que
permita simular el registro de un usuario.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF en Maven
Lo primero que hay que hacer es tomar el ejemplo de Maven que
se construy´o en sesiones pasadas y modificar el archivo pom.xml
en la secci´on de dependencias agregando el siguiente c´odigo para
integrar las dependencias de JSF a nuestro proyecto:
<!-- Agrega mos soporte para java server faces -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.8</version>
<type>jar</type>
</dependency>
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF en Maven
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.8-19</version>
</dependency>
<!-- Soporte para primefaces -->
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>6.0</version>
</dependency>
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
El siguiente archivo a modificar es web.xml de modo que luzca
como el siguiente c´odigo
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<display-name>Archetype Created Web Application</display-name>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>com.miguel.proyecto.MiServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/foo</url-pattern>
</servlet-mapping>
</web-app>
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
Ahora que ya tenemos el soporte de las bibliotecas de JSF dentro
del proyecto, vamos a comenzar a crear la p´agina para validar la
creaci´on de inicio de sesi´on. Para esto comenzaremos con el
concepto de Managed Bean.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
¿Qu´e es un Managed Bean?
Un Managed Bean es una clase que sigue la nomenclatura de los
Java Beans. El objetivo de estos objetos es controlar el estado de
la p´agina web. JSF va a administrar autom´aticamente los managed
beans.
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
Ahora vamos a integrar un bean que represente un usuario del
sistema.
package com.miguel.proyecto.web;
public class Usuario {
private String usuario;
private String contrase~na;
private String confirmacionContrase~na;
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
public String getContrase~na() {
return contrase~na;
}
public void setContrase~na(String contrase~na) {
this.contrase~na = contrase~na;
}
public String getConfirmacionContrase~na() {
return confirmacionContrase~na;
}
public void setConfirmacionContrase~na(String confirmacionContrase~na) {
this.confirmacionContrase~na = confirmacionContrase~na;
}
}
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
Agregamos un bean manejado de JSF.
package com.miguel.proyecto.web;
import java.util.Locale;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
@ManagedBean
@RequestScoped
public class RegisterController {
private Usuario user = new Usuario();
public Usuario getUser() {
return user;
}
public void setUser(Usuario user) {
this.user = user;
}
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
public RegisterController() {
FacesContext.getCurrentInstance()
.getViewRoot()
.setLocale(new Locale("es-Mx"));
}
public String addUser() {
if (!user.getContrase~na()
.equals(user.getConfirmacionContrase~na())) {
FacesContext.getCurrentInstance()
.addMessage(null
, new FacesMessage(FacesMessage.SEVERITY_ERROR
, "Fallo de registro: Las contrase~nas deben coincidir", ""));
} else {
FacesContext.getCurrentInstance()
.addMessage(null,
, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Felicidades, el registro se ha realizado correctamente", ""));
user = null;
}
return null;
}
}
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
Y finalmente la p´agina que queremos visualizar. En este caso un
ejemplo sencillo de validaci´on de contrase˜nas.
<?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"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Ejemplo de JavaServer Faces</title>
</h:head>
<h:body>
<h1>Formulario de registro</h1> <br/>
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
<h:form id="myForm">
<table>
<tr>
<td>
<p:messages id="messages" autoUpdate="true"
closable="true" />
</td>
</tr>
</table>
<table>
<tr>
<td>Nombre de usuario</td>
<td><p:inputText
value="#{registerController.user.usuario}"
required="true" id="Username" size="10"/></td>
</tr>
<tr>
<td>Contrase~na</td>
<td><p:password
value="#{registerController.user.contrase~na}"
required="true" feedback="true" id="Password"/></td>
</tr>
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
<tr>
<td>Confirmar Contrase~na</td>
<td><p:password
value="#{registerController.user. confirmacionContrase~na}"
required="true" feedback="true" id="ConfirmPassword"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<p:commandButton action="#{registerController.addUser}"
value="Registrar"/>
<p:commandButton value="Reset" update="myForm"
process="@this">
<p:resetInput target="myForm" />
</p:commandButton>
</td>
</tr>
</table>
</h:form>
</h:body>
</html>
Miguel Laboratorio
Usando Git Java Server Faces Integrando JSF
Integrando JSF con Maven
Y terminamos levantando nuestro sitio con:
mvn tomcat7:run
E ingresamos a la siguiente url.
http://localhost:
8080/mi-primer-aplicacion-web/registro.xhtml
Miguel Laboratorio

More Related Content

What's hot

JBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesJBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesAitor Acedo
 
Ejercicio basico jsf’s
Ejercicio basico jsf’sEjercicio basico jsf’s
Ejercicio basico jsf’sayreonmx
 
Web 2.0 ajax con SharePoint
Web 2.0 ajax con SharePointWeb 2.0 ajax con SharePoint
Web 2.0 ajax con SharePointgoreorti
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebEsteban Saavedra
 
Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007Luis Du Solier
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaJorge Pacheco Mengual
 
Testing con selenium
Testing con seleniumTesting con selenium
Testing con seleniummarianoshin
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1josezapana
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Eduard Tomàs
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación JavaAntonio Contreras
 
Liferay versión 6.1 Trabajando con LDAP, introducción
Liferay versión 6.1  Trabajando con LDAP, introducciónLiferay versión 6.1  Trabajando con LDAP, introducción
Liferay versión 6.1 Trabajando con LDAP, introducciónEmatiz Tecnología, S.L.
 
Grails: Framework para el desarrollo de aplicaciones Web No 4
Grails: Framework para el desarrollo de aplicaciones Web No 4Grails: Framework para el desarrollo de aplicaciones Web No 4
Grails: Framework para el desarrollo de aplicaciones Web No 4Esteban Saavedra
 

What's hot (20)

Filtrado de recursos en Maven
Filtrado de recursos en MavenFiltrado de recursos en Maven
Filtrado de recursos en Maven
 
JBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesJBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server Faces
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
Ejercicio basico jsf’s
Ejercicio basico jsf’sEjercicio basico jsf’s
Ejercicio basico jsf’s
 
Web 2.0 ajax con SharePoint
Web 2.0 ajax con SharePointWeb 2.0 ajax con SharePoint
Web 2.0 ajax con SharePoint
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones Web
 
Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007
 
Reportes
ReportesReportes
Reportes
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 
P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0
 
Testing con selenium
Testing con seleniumTesting con selenium
Testing con selenium
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
Selenium
SeleniumSelenium
Selenium
 
Liferay versión 6.1 Trabajando con LDAP, introducción
Liferay versión 6.1  Trabajando con LDAP, introducciónLiferay versión 6.1  Trabajando con LDAP, introducción
Liferay versión 6.1 Trabajando con LDAP, introducción
 
Grails: Framework para el desarrollo de aplicaciones Web No 4
Grails: Framework para el desarrollo de aplicaciones Web No 4Grails: Framework para el desarrollo de aplicaciones Web No 4
Grails: Framework para el desarrollo de aplicaciones Web No 4
 

Similar to Herramientas de trabajo (3)

[ES] Desarrollo de aplicaciones con Java Server Faces
[ES] Desarrollo de aplicaciones con Java Server  Faces[ES] Desarrollo de aplicaciones con Java Server  Faces
[ES] Desarrollo de aplicaciones con Java Server FacesEudris Cabrera
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5Eudris Cabrera
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Javaserver Faces (jsf)
Javaserver Faces (jsf)Javaserver Faces (jsf)
Javaserver Faces (jsf)Enrique Polo
 
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)René Pilataxi
 
Trabajo De Oracle
Trabajo De OracleTrabajo De Oracle
Trabajo De Oraclefpiedra
 
[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7Eudris Cabrera
 
Frameworks de Java
Frameworks de JavaFrameworks de Java
Frameworks de Javaragmyl
 
Microservicios en Azure Service Fabric
Microservicios en Azure Service FabricMicroservicios en Azure Service Fabric
Microservicios en Azure Service FabricVíctor Moreno
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...JaenFrankcezco
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver FulgueraJavier Oliver Fulguera
 

Similar to Herramientas de trabajo (3) (20)

[ES] Desarrollo de aplicaciones con Java Server Faces
[ES] Desarrollo de aplicaciones con Java Server  Faces[ES] Desarrollo de aplicaciones con Java Server  Faces
[ES] Desarrollo de aplicaciones con Java Server Faces
 
06. jsf (java server faces) (1)
06. jsf (java server faces) (1)06. jsf (java server faces) (1)
06. jsf (java server faces) (1)
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Javaserver Faces (jsf)
Javaserver Faces (jsf)Javaserver Faces (jsf)
Javaserver Faces (jsf)
 
Intro jsf
Intro jsfIntro jsf
Intro jsf
 
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
01 introducción
01 introducción01 introducción
01 introducción
 
Trabajo De Oracle
Trabajo De OracleTrabajo De Oracle
Trabajo De Oracle
 
Sap WEB IDE Innovation
Sap WEB IDE  InnovationSap WEB IDE  Innovation
Sap WEB IDE Innovation
 
[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7
 
Frameworks de Java
Frameworks de JavaFrameworks de Java
Frameworks de Java
 
Spring
SpringSpring
Spring
 
ICEFaces 2.0
ICEFaces 2.0ICEFaces 2.0
ICEFaces 2.0
 
Microservicios en Azure Service Fabric
Microservicios en Azure Service FabricMicroservicios en Azure Service Fabric
Microservicios en Azure Service Fabric
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 

Recently uploaded

PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 

Recently uploaded (7)

PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 

Herramientas de trabajo (3)

  • 1. Usando Git Java Server Faces Integrando JSF Herramientas de trabajo (3) Miguel Angel Pi˜na Avelino Ingenier´ıa de Software, Facultad de Ciencias, UNAM 2 de septiembre de 2018 Miguel Laboratorio
  • 2. Usando Git Java Server Faces Integrando JSF ´Indice 1 Usando Git 2 Java Server Faces 3 Integrando JSF Miguel Laboratorio
  • 3. Usando Git Java Server Faces Integrando JSF Usando Git Miguel Laboratorio
  • 4. Usando Git Java Server Faces Integrando JSF Agregando repositorios remotos Hay que crear un repositorio remoto (en github) y agregamos la siguiente instrucci´on: $ git remote add origin https://github.com/miguelpinia/something.git Hay que remplazar la url por la del repositorio. Una vez agregado el repositorio remoto, hay que empujar todos los cambios que hemos hecho en nuestro repositorio local: git push -u origin master Miguel Laboratorio
  • 5. Usando Git Java Server Faces Integrando JSF Obteniendo cambios desde repositorio Supongamos que alguien hizo cambios en el repositorio y los empuj´o al repositorio, para obtener esos cambios, ejecutamos la instrucci´on: $ git pull Para ver cuales fueron los cambios que se hicieron entre el ´ultimo commit que ten´ıamos y el que obtuvimos ejecutamos: $ git diff HEAD Miguel Laboratorio
  • 6. Usando Git Java Server Faces Integrando JSF Creando ramas Para agregar cambios sin modificar el contenido de la rama principal (rama master), vamos a crear una nueva rama donde podamos trabajar. Para hacer esto, realizamos lo siguiente: $ git checkout -b mi_nueva_rama A partir de aqu´ı podemos realizar nuevos cambios. Para regresar o moverse entre ramas, usando el comando checkout sin banderas. $ git checkout master Miguel Laboratorio
  • 7. Usando Git Java Server Faces Integrando JSF Mezclando ramas Despu´es de realizar una serie de cambios, es necesario que se mezclen con la rama principal. Una forma limpia de hacerlo, es haciendo un rebase de la rama con la que estamos trabajando respecto a la que vamos a mezclar. Miguel Laboratorio
  • 8. Usando Git Java Server Faces Integrando JSF Mezclando ramas La acci´on de rebase, se refiere a desplazar todos los cambios que existan en la rama a mezclar y que no se han integrado con la rama que estamos trabajando. $ git checkout mi_nueva_rama $ git rebase master $ git checkout master $ git merge --no-ff mi_nueva_rama $ git push Miguel Laboratorio
  • 9. Usando Git Java Server Faces Integrando JSF Eliminando ramas La forma sencilla de eliminar ramas dentro de git es la siguiente: $ git branch -d mi_nueva_rama Miguel Laboratorio
  • 10. Usando Git Java Server Faces Integrando JSF Java Server Faces Miguel Laboratorio
  • 11. Usando Git Java Server Faces Integrando JSF Java Server Faces JSF es un framework MVC (Modelo-Vista-Controlador) basado en el API de Servlets que proporciona un conjunto de componentes en forma de etiquetas definidas en p´aginas XHTML mediante el framework Facelets. Antes de la especificaci´on actual se utilizaba JSP para componer las p´aginas JSF. Miguel Laboratorio
  • 12. Usando Git Java Server Faces Integrando JSF Java Server Faces Entrando un poco m´as en detalle, JSF proporciona las siguientes caracter´ısticas destacables: • Definici´on de las interfaces de usuario mediante vistas que agrupan componentes gr´aficos. Miguel Laboratorio
  • 13. Usando Git Java Server Faces Integrando JSF Java Server Faces Entrando un poco m´as en detalle, JSF proporciona las siguientes caracter´ısticas destacables: • Definici´on de las interfaces de usuario mediante vistas que agrupan componentes gr´aficos. • Conexi´on de los componentes gr´aficos con los datos de la aplicaci´on mediante los denominados beans gestionados. Miguel Laboratorio
  • 14. Usando Git Java Server Faces Integrando JSF Java Server Faces Entrando un poco m´as en detalle, JSF proporciona las siguientes caracter´ısticas destacables: • Definici´on de las interfaces de usuario mediante vistas que agrupan componentes gr´aficos. • Conexi´on de los componentes gr´aficos con los datos de la aplicaci´on mediante los denominados beans gestionados. • Conversi´on de datos y validaci´on autom´atica de la entrada del usuario. Miguel Laboratorio
  • 15. Usando Git Java Server Faces Integrando JSF Java Server Faces Entrando un poco m´as en detalle, JSF proporciona las siguientes caracter´ısticas destacables: • Definici´on de las interfaces de usuario mediante vistas que agrupan componentes gr´aficos. • Conexi´on de los componentes gr´aficos con los datos de la aplicaci´on mediante los denominados beans gestionados. • Conversi´on de datos y validaci´on autom´atica de la entrada del usuario. • Navegaci´on entre vistas. Miguel Laboratorio
  • 16. Usando Git Java Server Faces Integrando JSF Java Server Faces Entrando un poco m´as en detalle, JSF proporciona las siguientes caracter´ısticas destacables: • Definici´on de las interfaces de usuario mediante vistas que agrupan componentes gr´aficos. • Conexi´on de los componentes gr´aficos con los datos de la aplicaci´on mediante los denominados beans gestionados. • Conversi´on de datos y validaci´on autom´atica de la entrada del usuario. • Navegaci´on entre vistas. • Internacionalizaci´on Miguel Laboratorio
  • 17. Usando Git Java Server Faces Integrando JSF Java Server Faces Entrando un poco m´as en detalle, JSF proporciona las siguientes caracter´ısticas destacables: • Definici´on de las interfaces de usuario mediante vistas que agrupan componentes gr´aficos. • Conexi´on de los componentes gr´aficos con los datos de la aplicaci´on mediante los denominados beans gestionados. • Conversi´on de datos y validaci´on autom´atica de la entrada del usuario. • Navegaci´on entre vistas. • Internacionalizaci´on • A partir de la especificaci´on 2.0 un modelo est´andar de comunicaci´on Ajax entre la vista y el servidor. Miguel Laboratorio
  • 18. Usando Git Java Server Faces Integrando JSF Otras caracter´ısticas Otras caracter´ısticas que tiene JSF son: • Soporte para Ajax Miguel Laboratorio
  • 19. Usando Git Java Server Faces Integrando JSF Otras caracter´ısticas Otras caracter´ısticas que tiene JSF son: • Soporte para Ajax • Componentes m´ultiples Miguel Laboratorio
  • 20. Usando Git Java Server Faces Integrando JSF Otras caracter´ısticas Otras caracter´ısticas que tiene JSF son: • Soporte para Ajax • Componentes m´ultiples • Integraci´on con Facelets Miguel Laboratorio
  • 21. Usando Git Java Server Faces Integrando JSF Otras caracter´ısticas Otras caracter´ısticas que tiene JSF son: • Soporte para Ajax • Componentes m´ultiples • Integraci´on con Facelets • Gesti´on de recursos (hojas de estilo, im´agenes, etc.) Miguel Laboratorio
  • 22. Usando Git Java Server Faces Integrando JSF Otras caracter´ısticas Otras caracter´ısticas que tiene JSF son: • Soporte para Ajax • Componentes m´ultiples • Integraci´on con Facelets • Gesti´on de recursos (hojas de estilo, im´agenes, etc.) • Facilidad de desarrollo y despliegue Miguel Laboratorio
  • 23. Usando Git Java Server Faces Integrando JSF Java Server Faces Como se ejecuta Tal y como hemos comentado, JSF se ejecuta sobre la tecnolog´ıa de Servlets y no requiere ning´un servicio adicional, por lo que para ejecutar aplicaciones JSF s´olo necesitamos un contenedor de servlets tipo Tomcat o Jetty. Miguel Laboratorio
  • 24. Usando Git Java Server Faces Integrando JSF Java Server Faces Implementaciones JSF es una especificaci´on y, como tal, existen distintas implementaciones. Sun siempre proporciona una implementaci´on de referencia de las tecnolog´ıas Java, que incluye en el servidor de aplicaciones GlassFish. En el caso de JSF, la implementaci´on de referencia s las dos implementaciones m´as usadas son: • Mojarra • MyFaces Miguel Laboratorio
  • 25. Usando Git Java Server Faces Integrando JSF Primefaces PrimeFaces es una librer´ıa de componentes para JavaServer Faces (JSF) de c´odigo abierto que cuenta con un conjunto de componentes enriquecidos que facilitan la creaci´on de las aplicaciones web. Primefaces est´a bajo la licencia de Apache License V2. Una de las ventajas de utilizar Primefaces, es que permite la integraci´on con otros componentes como por ejemplo RichFaces. Miguel Laboratorio
  • 26. Usando Git Java Server Faces Integrando JSF Documentaci´on JavaServer Faces Technology https://docs.oracle.com/javaee/7/tutorial/jsf-intro.htm Primefaces http://primefaces.org/ Miguel Laboratorio
  • 27. Usando Git Java Server Faces Integrando JSF Integrando JSF Miguel Laboratorio
  • 28. Usando Git Java Server Faces Integrando JSF Integrando JSF en Maven Para ejemplificar la integraci´on de JSF y la facilidad con la que se puede operar con JSF, vamos a implementar un formulario que permita simular el registro de un usuario. Miguel Laboratorio
  • 29. Usando Git Java Server Faces Integrando JSF Integrando JSF en Maven Lo primero que hay que hacer es tomar el ejemplo de Maven que se construy´o en sesiones pasadas y modificar el archivo pom.xml en la secci´on de dependencias agregando el siguiente c´odigo para integrar las dependencias de JSF a nuestro proyecto: <!-- Agrega mos soporte para java server faces --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.2.8</version> <type>jar</type> </dependency> Miguel Laboratorio
  • 30. Usando Git Java Server Faces Integrando JSF Integrando JSF en Maven <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.2.8-19</version> </dependency> <!-- Soporte para primefaces --> <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>6.0</version> </dependency> Miguel Laboratorio
  • 31. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven El siguiente archivo a modificar es web.xml de modo que luzca como el siguiente c´odigo <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> Miguel Laboratorio
  • 32. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <servlet> <servlet-name>servlet</servlet-name> <servlet-class>com.miguel.proyecto.MiServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>servlet</servlet-name> <url-pattern>/foo</url-pattern> </servlet-mapping> </web-app> Miguel Laboratorio
  • 33. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven Ahora que ya tenemos el soporte de las bibliotecas de JSF dentro del proyecto, vamos a comenzar a crear la p´agina para validar la creaci´on de inicio de sesi´on. Para esto comenzaremos con el concepto de Managed Bean. Miguel Laboratorio
  • 34. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven ¿Qu´e es un Managed Bean? Un Managed Bean es una clase que sigue la nomenclatura de los Java Beans. El objetivo de estos objetos es controlar el estado de la p´agina web. JSF va a administrar autom´aticamente los managed beans. Miguel Laboratorio
  • 35. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven Ahora vamos a integrar un bean que represente un usuario del sistema. package com.miguel.proyecto.web; public class Usuario { private String usuario; private String contrase~na; private String confirmacionContrase~na; public String getUsuario() { return usuario; } public void setUsuario(String usuario) { this.usuario = usuario; } Miguel Laboratorio
  • 36. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven public String getContrase~na() { return contrase~na; } public void setContrase~na(String contrase~na) { this.contrase~na = contrase~na; } public String getConfirmacionContrase~na() { return confirmacionContrase~na; } public void setConfirmacionContrase~na(String confirmacionContrase~na) { this.confirmacionContrase~na = confirmacionContrase~na; } } Miguel Laboratorio
  • 37. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven Agregamos un bean manejado de JSF. package com.miguel.proyecto.web; import java.util.Locale; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; @ManagedBean @RequestScoped public class RegisterController { private Usuario user = new Usuario(); public Usuario getUser() { return user; } public void setUser(Usuario user) { this.user = user; } Miguel Laboratorio
  • 38. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven public RegisterController() { FacesContext.getCurrentInstance() .getViewRoot() .setLocale(new Locale("es-Mx")); } public String addUser() { if (!user.getContrase~na() .equals(user.getConfirmacionContrase~na())) { FacesContext.getCurrentInstance() .addMessage(null , new FacesMessage(FacesMessage.SEVERITY_ERROR , "Fallo de registro: Las contrase~nas deben coincidir", "")); } else { FacesContext.getCurrentInstance() .addMessage(null, , new FacesMessage(FacesMessage.SEVERITY_INFO, "Felicidades, el registro se ha realizado correctamente", "")); user = null; } return null; } } Miguel Laboratorio
  • 39. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven Y finalmente la p´agina que queremos visualizar. En este caso un ejemplo sencillo de validaci´on de contrase˜nas. <?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" xmlns:p="http://primefaces.org/ui"> <h:head> <title>Ejemplo de JavaServer Faces</title> </h:head> <h:body> <h1>Formulario de registro</h1> <br/> Miguel Laboratorio
  • 40. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven <h:form id="myForm"> <table> <tr> <td> <p:messages id="messages" autoUpdate="true" closable="true" /> </td> </tr> </table> <table> <tr> <td>Nombre de usuario</td> <td><p:inputText value="#{registerController.user.usuario}" required="true" id="Username" size="10"/></td> </tr> <tr> <td>Contrase~na</td> <td><p:password value="#{registerController.user.contrase~na}" required="true" feedback="true" id="Password"/></td> </tr> Miguel Laboratorio
  • 41. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven <tr> <td>Confirmar Contrase~na</td> <td><p:password value="#{registerController.user. confirmacionContrase~na}" required="true" feedback="true" id="ConfirmPassword"/></td> </tr> <tr> <td colspan="2" align="center"> <p:commandButton action="#{registerController.addUser}" value="Registrar"/> <p:commandButton value="Reset" update="myForm" process="@this"> <p:resetInput target="myForm" /> </p:commandButton> </td> </tr> </table> </h:form> </h:body> </html> Miguel Laboratorio
  • 42. Usando Git Java Server Faces Integrando JSF Integrando JSF con Maven Y terminamos levantando nuestro sitio con: mvn tomcat7:run E ingresamos a la siguiente url. http://localhost: 8080/mi-primer-aplicacion-web/registro.xhtml Miguel Laboratorio