BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE
PUEBLA
FACULTAD DE CIENCIAS DE LA COMPUTACIÓN
DOCUMENTACIÓN PARA WEBSITE
ARTICULO: MAVEN
De
Pérez Mejía Cesar Alexis 201853826
Contenido
Capítulo 1: Una introducción a JSF .....................................................................................................2
¿Qué es JSF?...................................................................................................................................2
Bibliotecas de etiquetas admitidas por Facelets ............................................................................3
Configuración Básica ......................................................................................................................4
1
Capítulo 1: Una introducción a JSF
¿Qué es JSF?
Java Server Faces es una especificación para crear interfaces web orientadas a
eventos y basadas en componentes. Además de permitir el acceso a datos y lógica del
lado del servidor, ya que se define en un marco de trabajo MVC (Modelo – Vista –
Controlador).
Se caracteriza por el manejo de plantillas con Facelets.
Donde un Facelets es un lenguaje de declaración de página potente y ligero utilizado
para crear vistas JSF utilizando plantillas de estilo HTML para crear arboles de
componentes.
Sus ventajas son las siguientes.
1. Tiene el uso de XHTML para la creación de páginas web.
2. Soporte de bibliotecas de etiquetas Facelets, Java Server Faces y JSTL.
3. Soporte para Expression Lenguage (EL).
4. Plantillas para componentes y páginas.
2
Bibliotecas de etiquetas admitidas por Facelets
Estas etiquetas dependen de la versión de JSF, en la actualidad estamos en JSF 2.3
soportado para Java EE 8 y otro más utilizado en proyectos Legacy es JSF 2.2
soportada por Java 7 y posteriores.
(Ejemplos: [Link]
facelets/[Link]).
Algunos ejemplos para acceder a las etiquetas son a través de su prefix. Las más
utilizadas son las que se muestran la siguiente tabla.
Tag Library Prefix Comntents
JavaServer Faces
Etiquetas para
Facelets Tag xmlns:ui="[Link]
plantillas
Library
Etiquetas de
JavaServer Faces componente
HTML Tag xmlns:h="[Link] JavaServer Faces para
Library todos los objetos
UIComponent
Etiquetas para
acciones
personalizadas de
JavaServer Faces JavaServer Faces que
xmlns:f="[Link]
Core Tag Library son independientes de
cualquier kit de
renderizado en
particular
3
Configuración Básica
Si has creado un proyecto web en Maven, conocerás el diseño de directorios, dentro
del directorio src/main/webapp/WEB-INF existe el archivo [Link] el cual
proporciona información de configuración y despliegue de componentes web. Dentro
debemos declarar el componente FacesServlet.
Archivo de configuración [Link] el cual permite configurar todos
los elementos usados en una aplicación JSF. En el cual se registran los Beans dentro
del archivo de configuración para poder hacer uso de ellos.
Anotaciones, las anotaciones nos permiten configurar con JSF.
Managed Beans: @ManagedBean: Permite declarar que una clase se
comporte como un controlador. Y es más utilizado en las etiquetas para
interfaz de usuario JavaServer Faces HTML Tag Library.
Validator: @FacesValidator: Hace que una clase sea registrada en tiempo
de ejecución como un validador. Más utilizado en etiquetas JavaServer Faces
Core Tag Library.
Converters: @FacesConverter: Para formatear componentes ingresados
por el usuario Más utilizado en etiquetas JavaServer Faces HTML Tag
Library.
Componentes UI: @FacesComponent: Permite descargar o aplicar
componentes propios.
Renderers: @FacesRenders: Para configurar renders entre dos
componentes JSF.
Behavir: @FacesBehavior: Su función es agregar lógica de programación
del lado del cliente en el backend.
NOTA: El uso de estas anotaciones, hay que recordar que son del import
[Link].*
4
NOTA: Para usar todas las demás configuraciones se debe usar el archivo faces-
[Link], este archivo igual sirve para registrar Beans para hacer uso de ellos más
adelante. (Existe una configuración de Spring dentro del archivo [Link] para
comunicar el contexto de Spring con el contexto de JSF, resolviendo las referencias de
nombres a Beans definidos por Spring) este es el SpringBeanFacesELResolver, el
cual posteriormente veremos su configuración.
5
Capitulo 2: Creando proyecto en JSF con Maven
Herramientas de trabajo
Existen distintas formas de crear un proyecto Java Web con Maven, aquí mostraremos
una forma para reforzar los directorios y archivos que componen un proyecto web en
Java. Para esta serie de pasos utilizaremos las siguientes herramientas.
• Java JDK 8 (o superior).
• Eclipse Java EE IDE Versión: 2018-09 (4.9.0).
• Apache Maven 3.8.6
• Tomcat 8.5
• JSF versión 2.2 (se configura dentro del proyecto).
Muchas ganas de aprender ʕ•ᴥ•ʔ...
Árbol de directorios
Una vez que tengas instalado Java JDK 8 o superior e instalado la versión de Eclipse
de su preferencia (Pero que sea una versión JAVA EE), procederemos a instalar el
servidor de Tomcat 8.5 en el IDE.
RECOMENDACIÓN: Esta es una recomendación de directorios que me dieron
cuando realiza mis prácticas profesionales. Es opcional si quieres seguirla.
Crear un directorio donde guardaremos todas nuestras herramientas de trabajo. P/E:
Fig. 2-1 Recomendación para estructura de proyectos
6
Como pueden notar, el directorio principal es YOURDIRECTORY.
1. Seguido tenemos el directorio Enviroments, el cual es el ambiente y
herramientas utilizadas en el ambiente (nuestro IDE).
• Dentro de Enviroments > tenemos IDE, que a su vez tiene dentro el
directorio eclipse, ahí es donde estará el ide descomprimido.
• Dentro de Enviroments > tenemos SERVER donde
descomprimiremos el archivo .zip de Tomcat y queda el directorio
apache-tomcat-8.5.81
• Por último, dentro de Enviroments > tenemos workspace, donde ira
el espacio de trabajo de eclipse.
2. Seguido tenemos el directorio projects, aquí es donde tendremos todos los
proyectos que generemos.
• Dentro de projects > tenemos project1
• Dentro de projects > tenemos project2
• Dentro de projects > tenemos project3
Esta es una recomendación para tener todos tus proyectos estructurados y a la mano
al momento de compilar con Maven sea más fácil de moverte y tener las configuraciones
de tu IDE.
7
Configurando Tomcat
Para crear nuestro servidor debemos seguir los siguientes pasos.
1. Dirigiéndonos al apartado Windows > Preferences.
2. Dirigirte o buscar Server > Runtime Enviroments > Add.
3. Buscar el servidor Apache > Seleccionar Tomcat 8.5 > Next.
4. Escoger la ruta donde hayas descomprimido el archivo .zip de Tomcat y
seleccionar el directorio apache-tomcat-8.5.81. (También puedes asignarle un
nombre de preferencia que se quede el que está por defecto y escoger la versión
de Java que tengas instalada).
Fig. 2-1 Configuración Tomcat Server
5. Selecciona Finish.
6. En caso de que no te aparezca la pestaña Servers. Dirigirte a Window >
Show View > Servers. (Acomódala donde más se te acomode, a gusto
personal la ubico a bajo de Project Explorer).
7. En la pestaña Server te pedirá añadir el servidor, busca el servidor en Apache
> Selecciona Tomcat 8.5 y en el apartado de Server Runtime
Environment aparecerá el servidor que hemos creado, selecciónalo y das en
finalizar.
8
8. En el apartado de Servers podrás ver el servidor añadido, has doble clic y realiza
la siguiente configuración.
1. En el apartado de Server Locations selecciona > Use Tomcat
installation y en el apartado de Deploy Path seleccionaras el
directorio webapps del directorio apache-tomcat-8.5.81.
Fig. 2-3 Overview del servidor
2. Por último, ubica TimeOuts y en el apartado de Star te recomiendo
que lo pongas en 185, esto dependerá de lo que tu proyecto tarde en ser
alzado en el servidor Tomcat, en caso de que exceda los 45 segundo que
tiene por defecto, este terminara su proceso de ejecución y no será
mostrado, por lo que te recomiendo 185 segundos ya que lo he probado
con un proyecto con un peso de 1gb de control de reparación y no da
ningún problema.
3. Guarda la configuración con CTRL + S y alza tu servidor Tomcat, por
defecto el host será localhost y estará ejecutándose el puerto 8080.
Fig. 2-4 Ejecución del servidor Tomcat.
9
Crear Proyecto web con Maven
Primeros pasos:
1. Dirigirse a File > New > Maven Project.
2. Selecciona la casilla de Create a simple project.
3. Seleccionar la ruta donde almacenara su proyecto en el apartado de Use
default Workspace location y seleccionar Next una vez escogida su ruta.
4. Si ya viste el artículo sobre Maven en la sección “Creando un proyecto
Maven”. Sabrás que es el Artifac de nuestro proyecto. Entonces lo llenamos
de la siguiente manera.
Fig. 2-5 Proyecto Maven configurado
5. Como puedes observar en el apartado de packaging existe tres tipos de
empaquetado JAR, WAR y POM. Los cuales están explicados en el artículo
Maven en la sección “Tipos de empaquetado en Maven” en este caso Comentado [CPM1]: Enlace sobre el Articulo de tipos de
empaquetados en Maven
seleccionaremos un empaquetado WAR por ser un proyecto Web.
6. Por último, daremos clic en Finish.
10
Estructura proyecto Maven
En nuestro articulo Maven en la sección Estructura de un proyecto Maven, Comentado [CPM2]: Insertar enlace del articulo
explicamos más a fondo este árbol de directorios según el Archetype, como omitimos
ese paso al crear el proyecto en eclipse, se genera un proyecto en Maven en blanco. Por
lo que debemos crear las siguientes carpetas como se muestra en la siguiente imagen.
Fig. 2-6 Estructura proyecto Maven Web
Una vez creada esta estructura queda de la siguiente manera el proyecto.
Fig. 2-7 Estructura del proyecto
11
Configurando archivo [Link]
1. En nuestro archivo [Link] tendremos la siguiente estructura con la
información que llenamos del Artifac.
<project xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link]
[Link]
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>configuration-jsf</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>configuration-jsf</name>
<description>Example of configuration project web Java with JSF</description>
</project>
2. Indicaremos que nuestro proyecto sera un empaquetado WAR.
<packaging>war</packaging>
3. Por lo que agregaremos propiedades a nuestro proyecto, esto para que sea
compatible con nuestra versión de Java y el esquema de codificado de
caracteres.
<properties>
<!-- Indica la version de Java a utilizar -->
<[Link]>8</[Link]>
<[Link]>8</[Link]>
<!-- Esquema de codificación del caractertes -->
<[Link]>UTF-8</[Link]>
</properties>
12