Introducción
Para mostrar el texto formatado utilizamos la web Hilite
Prerequisitos
Veamos los prerequistos de instalación
- Eclipse JEE
- Plugins básicos de Eclipse (maven, etc)
- Tomcat (9)
Pasos a seguir en Eclipse:
2. Seleccionar Create a simple project (skip archetype selection) y Next
3. En Group id damos el nombre del paquete por ejemplo org.ximodante.jsf y talto aĺ artifact Id como al Name le proporcionamos el nombre del proyecto, en ese caso JSFv01, y el packaging a war. Podemos darle el description que queramos. y Finish
(OJO: En Group id no tenemos por que darle el nombre del paquete, se puede dar otros valores como "prueba", "jaja",..)
(OJO: En Group id no tenemos por que darle el nombre del paquete, se puede dar otros valores como "prueba", "jaja",..)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | <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>org.ximodante.jsf</groupId> <artifactId>JSFv01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>JSFv01</name> <description>JSF first project</description> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <failOnMissingWebXml>false</failOnMissingWebXml> </properties> <dependencies> <!-- Servlet 3.1 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- JSF 2.2 API --> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.2.14</version> </dependency> <!-- JSF 2.2 Implementation --> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.2.14</version> </dependency> <!-- Primefaces --> <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>6.1</version> </dependency> <!-- Primefaces Themes --> <dependency> <groupId>org.primefaces.extensions</groupId> <artifactId>all-themes</artifactId> <version>1.0.8</version> <type>pom</type> </dependency> </dependencies> <!-- Needed repository only for old vesioons of Primefaces <repositories> <repository> <id>primefaces-repository</id> <name>Primefaces repository</name> <url>http://repository.primefaces.org</url> </repository> </repositories> --> </project> |
OJO: Para versiones antiguas de PrimeFaces si que era necesario incluir el repositorio indicado. En las nuevas no hace falta. Por ello se ha comentado esta entrada que ya no sirva
5. Veamos los cambios que hemos hecho:
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> Para java 1.8
<failOnMissingWebXml>false</failOnMissingWebXml> Prescindimos del web.xml
Añadimos las depencencias de servlet 3.1, jsf api e implementación, Primefaces
Respecto al Servlet 3.1 mediante <scope>provided</scope> le indicamos que utilice esta dependencia para compilar las clases que creamos pero que no lo incluya en el war ya que normalmente los servidores de aplicaciones ya las incluyen.
OJo: Las actuales versiones de Primefaces ya no requieren la entrada tipo repository para acceder a los jars de Primefaces. Por eso está comentada.
6. Ahora Maven nos buscará las dependencia. Boton derecho sobre el proyecto - Maven -Update Project
Ya hemos hecho lo mas difícil.
Creación de clases y ejecución del proyecto
Creamos nuestro paquete org.ximodante.jsf lo creamos nosotros (nos situamos en el Project explorer de nuestro proyecto en src/main/java y lo creamos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | package org.ximodante.jsf import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean @SessionScoped public class KeyboardBean { private String value; public String getValue() { System.out.println("KeyboardBean::reading value: " + value); return value; } public void setValue(String value) { System.out.println("KeyboardBean::setting value: " + value); this.value = value; } } |
Creamos el fichero index.xhtml en src/main/webapp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <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> <p:panel header="Keyboard Demo"> <p:keyboard value="#{keyboardBean.value}"/> </p:panel> <p:commandButton value="Submit"/> </h:form> </h:body> </html> |
Ahora creamos en src/main/webapp la carpeta WEB-INF y le creamos el esqueleto del fichero faces-config.xml tal como se dice en coreservlets
1 2 3 4 5 6 7 8 | <?xml version="1.0" encoding="UTF-8"?> <faces-config 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-facesconfig_2_2.xsd" version="2.2"> </faces-config> |
Por si acaso ejecutamos Botón derecho sobre el proyecto- Build Project
Ejecutamos Run As - Run on Server, elegimos un tomcat y apuntamos a la dirección
http://localhost:8080/JSFv01/index.jsf
(Ojo cuando le damos a ejecutas se situa en http://localhost:8080/JSFv01 y no http://localhost:8080/JSFv01/index.jsf dando un error. hay que marcar la URL correcta)
Este error no se daría si hubieramos utilizado el fichero web.xml que nos redirige a nuestra página de entrada. Pero queremos prescindir de este fichero. Ver el comentario de Arun Gupta para mas detalles.
Ahora en la consola aparecerán los valores que ingresamos:
KeyboardBean::reading value: null
KeyboardBean::reading value: null
KeyboardBean::setting value: uuu
No hay comentarios :
Publicar un comentario