Vamos a realizar una calculadora aritmetica con dos parámetros. Para poder realizar este ejercicio debes de tener las siguientes requerimientos:
Abrimos nuestro eclipse y creamos un proyecto maven.File->New->MavenProject
Seleccionamos en Create a simple project y presionamos Next
Una vez generado nuestro proyecto maven nos vamos al archivo pom.xml y pegamos el siguiente código esta para poder compilar con java 1.8.
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
<?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"> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <context-param> <param-name>primefaces.THEME</param-name> <param-value>cupertino</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>/faces/*</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>faces/index.xhtml</welcome-file> </welcome-file-list> </web-app>
<?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>
<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>com.tutosoftware.calculadora</groupId> <artifactId>calculadora</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>Calculadora Aritmetica</name> <repositories> <repository> <id>prime-repo</id> <name>PrimeFaces Maven Repository</name> <url>http://repository.primefaces.org/</url> <layout>default</layout> </repository> </repositories> <dependencies> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.2.10</version> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.2.10</version> </dependency> <!-- http://repo1.maven.org/maven --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.sun.el</groupId> <artifactId>el-ri</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>6.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.primefaces.themes/mint-choc --> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>all-themes</artifactId> <version>1.0.10</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
package com.tutosoftware.calculadora.bean; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; @ManagedBean @RequestScoped public class Calculadora implements Serializable { /** * */ private static final long serialVersionUID = 1L; private double parametro1; private double parametro2; private double resultado; public double getParametro1() { return parametro1; } public void setParametro1(double parametro1) { this.parametro1 = parametro1; } public double getParametro2() { return parametro2; } public void setParametro2(double parametro2) { this.parametro2 = parametro2; } public double getResultado() { return resultado; } public void setResultado(double resultado) { this.resultado = resultado; } public String suma(){ resultado = parametro1+parametro2; return ""; } public String resta(){ resultado = parametro1-parametro2; return ""; } public String multiplicacion(){ resultado = parametro1*parametro2; return ""; } public String division(){ resultado = parametro1/parametro2; return ""; } }
<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> <title>Calculadora aritmética</title> </h:head> <h:body> <h:form> <p:panelGrid class="ui-noborder"> <f:facet name="header"> <p:row> <p:column style="font-weight: bold;">Introduce los parámetros</p:column> <p:column style="font-weight: bold;"></p:column> </p:row> </f:facet> <p:row> <p:column> <h:outputLabel value="Parametro1: "/> </p:column> <p:column> <p:inputNumber id="parametro1" value="#{calculadora.parametro1}"> <p:ajax update="parametro1" /> </p:inputNumber> </p:column> </p:row> <p:row> <p:column> <h:outputLabel value="Parametro2: "/> </p:column> <p:column> <p:inputNumber id="parametro2" value="#{calculadora.parametro2}"> <p:ajax update="parametro2" /> </p:inputNumber> </p:column> </p:row> <p:row> <p:column> <h:commandButton value="Suma" action="#{calculadora.suma}"/> <h:commandButton value="Resta" action="#{calculadora.resta}"/> <h:commandButton value="Multiplicación" action="#{calculadora.multiplicacion}"/> <h:commandButton value="División" action="#{calculadora.division}"/> </p:column> </p:row> <p:row> <p:column> <h:outputLabel value="Resultado: "/> <h:outputText value="#{calculadora.resultado}"/> </p:column> </p:row> </p:panelGrid> </h:form> </h:body> </html>