survey10-encuesta
Este modulo nos plasma la encuesta geenrada en el admin.Ahora vamos con la parte de la vista nos vamos al modulo survey10-encuesta y el archivo pom.xml nos queda de la siguiente manera:
<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>
<parent>
<groupId>com.tutosoftware.survey10</groupId>
<artifactId>survey10</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>survey10-encuesta</artifactId>
<packaging>war</packaging>
<name>Survey Encuesta</name>
<build>
<finalName>surveyencuesta</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/webapp/WEB-INF</directory>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.tutosoftware.survey10</groupId>
<artifactId>survey10-core</artifactId>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>com.sun.el</groupId>
<artifactId>el-ri</artifactId>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</dependency>
</dependencies>
</project>
En src/main/java creamos el paquete com.tutosoftware.survey10.view creamos la clase Encuestaview
package com.tutosoftware.survey10.view;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuModel;
import com.tutosoftware.survey10.dao.EncuestaDAO;
import com.tutosoftware.survey10.entity.Encuesta;
import com.tutosoftware.survey10.entity.RegistrarEncuesta;
@ManagedBean
@SessionScoped
public class EncuestaView {
private MenuModel model;
private RegistrarEncuesta re;
private String respuesta1SiNo;
private String respuesta2SiNo;
private String respuesta3SiNo;
private String respuesta4SiNo;
private String respuesta5SiNo;
private String respuesta6SiNo;
private String respuesta7SiNo;
private String respuesta8Texto;
private String respuesta9Calif;
private String respuesta10Calif;
public String getRespuesta1SiNo() {
return respuesta1SiNo;
}
public void setRespuesta1SiNo(String respuesta1SiNo) {
this.respuesta1SiNo = respuesta1SiNo;
}
public String getRespuesta2SiNo() {
return respuesta2SiNo;
}
public void setRespuesta2SiNo(String respuesta2SiNo) {
this.respuesta2SiNo = respuesta2SiNo;
}
public String getRespuesta3SiNo() {
return respuesta3SiNo;
}
public void setRespuesta3SiNo(String respuesta3SiNo) {
this.respuesta3SiNo = respuesta3SiNo;
}
public String getRespuesta4SiNo() {
return respuesta4SiNo;
}
public void setRespuesta4SiNo(String respuesta4SiNo) {
this.respuesta4SiNo = respuesta4SiNo;
}
public String getRespuesta5SiNo() {
return respuesta5SiNo;
}
public void setRespuesta5SiNo(String respuesta5SiNo) {
this.respuesta5SiNo = respuesta5SiNo;
}
public String getRespuesta6SiNo() {
return respuesta6SiNo;
}
public void setRespuesta6SiNo(String respuesta6SiNo) {
this.respuesta6SiNo = respuesta6SiNo;
}
public String getRespuesta7SiNo() {
return respuesta7SiNo;
}
public void setRespuesta7SiNo(String respuesta7SiNo) {
this.respuesta7SiNo = respuesta7SiNo;
}
public String getRespuesta8Texto() {
return respuesta8Texto;
}
public void setRespuesta8Texto(String respuesta8Texto) {
this.respuesta8Texto = respuesta8Texto;
}
public String getRespuesta9Calif() {
return respuesta9Calif;
}
public void setRespuesta9Calif(String respuesta9Calif) {
this.respuesta9Calif = respuesta9Calif;
}
public String getRespuesta10Calif() {
return respuesta10Calif;
}
public void setRespuesta10Calif(String respuesta10Calif) {
this.respuesta10Calif = respuesta10Calif;
}
public RegistrarEncuesta getRe() {
return re;
}
public void setRe(RegistrarEncuesta re) {
this.re = re;
}
@PostConstruct
public void init() {
model = new DefaultMenuModel();
//First submenu
DefaultSubMenu firstSubmenu = DefaultSubMenu.builder()
.label("Dynamic Submenu")
.build();
DefaultMenuItem item = DefaultMenuItem.builder()
.value("External")
.url("http://www.primefaces.org")
.icon("pi pi-home")
.build();
firstSubmenu.getElements().add(item);
model.getElements().add(firstSubmenu);
//Second submenu
EncuestaDAO encuestaDAO = new EncuestaDAO();
re = encuestaDAO.mostrarEncuestaActiva();
}
public MenuModel getModel() {
return model;
}
public void insertarEncuesta() {
EncuestaDAO encuestaDAO = new EncuestaDAO();
Encuesta e = new Encuesta();
e.setNombreTabla(re.getTablaEncuesta());
e.setRespuesta1SiNo(respuesta1SiNo);
e.setRespuesta2SiNo(respuesta2SiNo);
e.setRespuesta3SiNo(respuesta3SiNo);
e.setRespuesta4SiNo(respuesta4SiNo);
e.setRespuesta5SiNo(respuesta5SiNo);
e.setRespuesta6SiNo(respuesta6SiNo);
e.setRespuesta7SiNo(respuesta7SiNo);
e.setRespuesta8Texto(respuesta8Texto);
e.setRespuesta9Calif(respuesta9Calif);
e.setRespuesta10Calif(respuesta10Calif);
encuestaDAO.insertarEncuesta(e);
limpiarFormulario();
}
public void limpiarFormulario() {
respuesta1SiNo=" ";
respuesta2SiNo=" ";
respuesta3SiNo=" ";
respuesta4SiNo=" ";
respuesta5SiNo=" ";
respuesta6SiNo=" ";
respuesta7SiNo=" ";
respuesta8Texto=" ";
respuesta9Calif=" ";
respuesta10Calif=" ";
}
}
En Src/main/webapp creamos el archivo index.xhtml
<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:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<div class="card">
<h:form id="form">
<p:growl id="messages"/>
<p:menubar>
<p:submenu label="Administrar" icon="ui-icon-document">
<p:menuitem value="Admin" url="http://localhost:8090/surveyadmin/" />
<p:separator />
</p:submenu>
</p:menubar>
<p:card style="width: 80em; margin-bottom: 2em;color:white">
<f:facet name="title">
#{encuestaView.re.nombreEncuesta}
</f:facet>
<h3>1. #{encuestaView.re.pregunta1SiNo}</h3>
<p:selectOneRadio id="respuesta1SiNo" value="#{encuestaView.respuesta1SiNo}" unselectable="true"
style="color:white" requiredMessage="respuesta requerida" required="true" >
<f:selectItem itemLabel="Si" itemValue="Si"/>
<f:selectItem itemLabel="No" itemValue="No"/>
</p:selectOneRadio>
<p:message for="respuesta1SiNo"></p:message>
<h3>2. #{encuestaView.re.pregunta2SiNo}</h3>
<p:selectOneRadio id="respuesta2SiNo" value="#{encuestaView.respuesta2SiNo}" unselectable="true"
style="color:white" requiredMessage="respuesta requerida" required="true" >
<f:selectItem itemLabel="Si" itemValue="Si"/>
<f:selectItem itemLabel="No" itemValue="No"/>
</p:selectOneRadio>
<p:message for="respuesta2SiNo"></p:message>
<h3>3. #{encuestaView.re.pregunta3SiNo}</h3>
<p:selectOneRadio id="respuesta3SiNo" value="#{encuestaView.respuesta3SiNo}" unselectable="true"
style="color:white" requiredMessage="respuesta requerida" required="true" >
<f:selectItem itemLabel="Si" itemValue="Si"/>
<f:selectItem itemLabel="No" itemValue="No"/>
</p:selectOneRadio>
<p:message for="respuesta3SiNo"></p:message>
<h3>4. #{encuestaView.re.pregunta4SiNo}</h3>
<p:selectOneRadio id="respuesta4SiNo" value="#{encuestaView.respuesta4SiNo}" unselectable="true"
style="color:white" requiredMessage="respuesta requerida" required="true" >
<f:selectItem itemLabel="Si" itemValue="Si"/>
<f:selectItem itemLabel="No" itemValue="No"/>
</p:selectOneRadio>
<p:message for="respuesta4SiNo"></p:message>
<h3>5. #{encuestaView.re.pregunta5SiNo}</h3>
<p:selectOneRadio id="respuesta5SiNo" value="#{encuestaView.respuesta5SiNo}" unselectable="true"
style="color:white" requiredMessage="respuesta requerida" required="true" >
<f:selectItem itemLabel="Si" itemValue="Si"/>
<f:selectItem itemLabel="No" itemValue="No"/>
</p:selectOneRadio>
<p:message for="respuesta5SiNo"></p:message>
<h3>6. #{encuestaView.re.pregunta6SiNo}</h3>
<p:selectOneRadio id="respuesta6SiNo" value="#{encuestaView.respuesta6SiNo}" unselectable="true"
style="color:white" requiredMessage="respuesta requerida" required="true" >
<f:selectItem itemLabel="Si" itemValue="Si"/>
<f:selectItem itemLabel="No" itemValue="No"/>
</p:selectOneRadio>
<p:message for="respuesta6SiNo"></p:message>
<h3>7. #{encuestaView.re.pregunta7SiNo}</h3>
<p:selectOneRadio id="respuesta7SiNo" value="#{encuestaView.respuesta7SiNo}" unselectable="true"
style="color:white" requiredMessage="respuesta requerida" required="true" >
<f:selectItem itemLabel="Si" itemValue="Si"/>
<f:selectItem itemLabel="No" itemValue="No"/>
</p:selectOneRadio>
<p:message for="respuesta7SiNo"></p:message>
<h3>8. #{encuestaView.re.pregunta8Texto}</h3>
<p:inputTextarea rows="5" cols="30" id="respuesta8Texto" counter="display"
value="#{encuestaView.respuesta8Texto}" maxlength="500"
requiredMessage="respuesta requerida" required="true" counterTemplate="{0} número de caracteres escritos." autoResize="false"/>
<h:outputText id="display" class="p-d-block" />
<br/>
<p:message for="respuesta8Texto"></p:message>
<h3>9. #{encuestaView.re.pregunta9Calif}</h3>
<p:selectOneButton value="#{encuestaView.respuesta9Calif}" requiredMessage="respuesta requerida" required="true" id="respuesta9Calif" >
<f:selectItem itemLabel="1. Malo" itemValue="malo"/>
<f:selectItem itemLabel="2. Regular" itemValue="regular"/>
<f:selectItem itemLabel="3. Bueno" itemValue="bueno"/>
<f:selectItem itemLabel="4. Muy bueno" itemValue="muy bueno"/>
<f:selectItem itemLabel="5. Excelente" itemValue="excelente"/>
</p:selectOneButton>
<p:message for="respuesta9Calif"></p:message>
<h3>10. #{encuestaView.re.pregunta10Calif}</h3>
<p:selectOneButton id="respuesta10Calif" value="#{encuestaView.respuesta10Calif}" requiredMessage="respuesta requerida" required="true" >
<f:selectItem itemLabel="1. Malo" itemValue="malo"/>
<f:selectItem itemLabel="2. Regular" itemValue="regular"/>
<f:selectItem itemLabel="3. Bueno" itemValue="bueno"/>
<f:selectItem itemLabel="4. Muy bueno" itemValue="muy bueno"/>
<f:selectItem itemLabel="5. Excelente" itemValue="excelente"/>
</p:selectOneButton>
<p:message for="respuesta10Calif"></p:message>
<br/><br/><br/>
<p:commandButton value="Guardar Encuesta" action="#{encuestaView.insertarEncuesta}" update="form"></p:commandButton>
</p:card>
</h:form>
</div>
</h:body>
</html>
Probando la aplicación
Ver ejemplo
El ejemplo lo pueder ver en la siguiente ip:- Contraseña:kapo1978@hotmail.com
- Password:adminsurvey
La encuesta la puedes ver en
El codigo lo puedes descargar pulsando el botón