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

survey10
survey10
survey10

Ver ejemplo

El ejemplo lo pueder ver en la siguiente ip:


La encuesta la puedes ver en


El codigo lo puedes descargar pulsando el botón