Bienvenidos al Blog de Aldo Malaver

Este Blog contiene articulos que te ayudaran a resolver muchos problemas, comenta cada articulo por favor. Gracias.

martes, 22 de enero de 2013

Creación de un Maven Project Prime




Objetivo       

Crear un proyecto Maven para trabajar con primefaces

1.     Creación de Proyecto Maven

Abrir eclipse luego crear un nuevo proyecto Maven utilizando New->Other->Maven Project. El nombre del proyecto será PrimeProject.



Seleccionamos la opción Create a simple Project (Skip archetype selection), después hacemos click en el botón Next, nos aparecerá la siguiente pantalla:




Group Id: cibertec.edu.pe
Artifact Id: PrimeProject
Version: 1.0.0
Packaging: war
Name: PrimeProject

Después de ingresar estos valores, hacemos click en Finish y empezará a crear el proyecto Maven.

2.     Agregar dependencias para Prime Faces
Una dependencia se refiere a las librerías el cual nuestro proyecto necesitará, para esto necesitaremos agregar las siguientes dependencias en el archivo pom.xml:

       <dependencies>
             <dependency>
                    <groupId>com.sun.faces</groupId>
                    <artifactId>jsf-api</artifactId>
                    <version>2.1.13</version>
             </dependency>
             <dependency>
                    <groupId>com.sun.faces</groupId>
                    <artifactId>jsf-impl</artifactId>
                    <version>2.1.13</version>
             </dependency>
             <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>jstl</artifactId>
                    <version>1.2</version>
             </dependency>
             <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>2.4</version>
             </dependency>
             <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces</artifactId>
                    <version>3.4.1</version>
             </dependency>
             <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.7</version>
                    <scope>test</scope>
             </dependency>
       </dependencies>

Las dependencias a agregar son jsf-api, jsf-impl, jstl, servlet-api, primefaces y junit. Adicionalmente se deben considerar los repositorios de donde se obtienen estas librerías, entre ellos tenemos el repositorio de primefaces, de jsf, etc.
A continuación se muestra las líneas de repositorios que necesita maven para poder obtener las librerías necesarias:

<repositories>
             <repository>
                    <id>maven2-repository.jboss.com</id>
                    <name>Jboss Repository for Maven</name>
                    <url>http://repository.jboss.com/maven2</url>
             </repository>
             <repository>
                    <id>prime-repo</id>
                    <name>Prime Technology Maven Repository</name>
                    <url>http://repository.primefaces.org</url>
                    <layout>default</layout>
             </repository>
             <repository>
                    <id>maven2-repository.dev.java.net</id>
                    <name>Java.net Repository for Maven</name>
                    <url>http://download.java.net/maven/2/</url>
                    <layout>default</layout>
             </repository>
       </repositories>

Después agregamos el build para que maven pueda crear build utilizando un nombre y el jdk necesario. A continuación se muestra las líneas de código:
<build>
       <finalName>PrimeProject</finalName>
       <plugins>
             <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                           <source>1.5</source>
                           <target>1.5</target>
                    </configuration>
             </plugin>
       </plugins>
</build>


3.     Creando la estructura del proyecto PrimeFaces
Primero crearemos la carpeta page dentro de la ruta src/main/webapp. Después dentro de la carpeta WEB-INF crearemos el archivo web.xml, haciendo click derecho en la carpeta, New->Others->Web Descriptor. Después de crear el archivo, copiaremos el siguiente código dentro de este archivo:
<?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_3_0.xsd"
       id="WebApp_ID" version="3.0">

       <description>Web PrimeFaces</description>
       <display-name>web-primefaces</display-name>

       <context-param>
             <param-name>javax.faces.CONFIG_FILES</param-name>
             <param-value>/WEB-INF/config/faces/faces-config.xml</param-value>
       </context-param>

       <!-- Project Stage Level -->
       <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>

       <servlet-mapping>
             <servlet-name>Faces Servlet</servlet-name>
             <url-pattern>*.xhtml</url-pattern>
       </servlet-mapping>

       <servlet-mapping>
             <servlet-name>Faces Servlet</servlet-name>
             <url-pattern>*.faces</url-pattern>
       </servlet-mapping>

       <listener>
             <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
       </listener>

       <welcome-file-list>
             <welcome-file>index.jsp</welcome-file>
       </welcome-file-list>

</web-app>

Después crearemos la carpeta config dentro de la carpeta WEB-INF y dentro de la carpeta config crearemos la carpeta faces. La estructura de carpeta debería quedar como se muestra en la siguiente imagen:


Teniendo la estructura completa, ahora crearemos el archivo faces-config en la carpeta faces haciendo click derecho New->Others-> Faces config. Se escogerá la versión 2.0 y quitar el check de register in web.xml.
Este archivo de configuración tendrá las siguientes líneas:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">

 </faces-config>


4.     Creando páginas web
Primero crearemos la página inicio.xhtml dentro de la carpeta page, para esto hacemos click derecho en la carpeta page, New->Other-> XHTML page. La página creada se le tendrá que agregar las siguientes líneas de código:
<html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:c="http://java.sun.com/jstl/core"
       xmlns:p="http://primefaces.org/ui">

<h:head>
       <link type="text/css" rel="stylesheet" href="themes/bluesky/skin.css" />
</h:head>
<h:body>
       <h:outputText value="Hola"/>
</h:body>
</html>

Después de crear la página inicio.xhtml, procederemos a crear la página index.jsp, para esto hacemos click derecho en la carpeta webapp, New->Other->JSP File. La página creada viene con código, para lo cual reemplazaremos este código por el código que se muestra a continuación:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head></head>
       <body>
             <jsp:forward page="page/inicio.xhtml"></jsp:forward>
       </body>
</html>