elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda de novato en un programa en Java con JSF
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda de novato en un programa en Java con JSF  (Leído 1,802 veces)
theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
Ayuda de novato en un programa en Java con JSF
« en: 16 Agosto 2015, 07:55 am »

Verán que he creado una página JSF llamada registro.xhtml en donde tengo un formulario en el que ingreso los datos de una persona y las registro en un arrayList de mi ManagedBean y debajo del formulario una tabla donde voy mostrando la lista de las personas que han sido registradas.

Tengo dos ManagedBean, uno llamado Usuario.java y otro ListaUsuarios.java

Usuario.java
Código
  1. package ManagedBean;
  2.  
  3. import javax.faces.bean.ManagedBean;
  4. import javax.faces.bean.RequestScoped;
  5.  
  6. @ManagedBean
  7. @RequestScoped
  8. public class Usuario {
  9.    private static int contador = 0;
  10.    private int id;
  11.    private String username;
  12.    private String password;
  13.    private String nombres;
  14.    private String apellidoMaterno;
  15.    private String apellidoPaterno;
  16.    private int edad;
  17.    private String sexo;
  18.    private String ciudad;
  19.  
  20.    public Usuario() {
  21.        this.setId(contador++);
  22.    }
  23.  
  24.    public int getId() {
  25.        return id;
  26.    }
  27.  
  28.    public void setId(int id) {
  29.        this.id = id;
  30.    }
  31.  
  32.    public String getUsername() {
  33.        return username;
  34.    }
  35.  
  36.    public void setUsername(String username) {
  37.        this.username = username;
  38.    }
  39.  
  40.    public String getPassword() {
  41.        return password;
  42.    }
  43.  
  44.    public void setPassword(String password) {
  45.        this.password = password;
  46.    }
  47.  
  48.    public String getNombres() {
  49.        return nombres;
  50.    }
  51.  
  52.    public void setNombres(String nombres) {
  53.        this.nombres = nombres;
  54.    }
  55.  
  56.    public String getApellidoMaterno() {
  57.        return apellidoMaterno;
  58.    }
  59.  
  60.    public void setApellidoMaterno(String apellidoMaterno) {
  61.        this.apellidoMaterno = apellidoMaterno;
  62.    }
  63.  
  64.    public String getApellidoPaterno() {
  65.        return apellidoPaterno;
  66.    }
  67.  
  68.    public void setApellidoPaterno(String apellidoPaterno) {
  69.        this.apellidoPaterno = apellidoPaterno;
  70.    }
  71.  
  72.    public int getEdad() {
  73.        return edad;
  74.    }
  75.  
  76.    public void setEdad(int edad) {
  77.        this.edad = edad;
  78.    }
  79.  
  80.    public String getSexo() {
  81.        return sexo;
  82.    }
  83.  
  84.    public void setSexo(String sexo) {
  85.        this.sexo = sexo;
  86.    }
  87.  
  88.    public String getCiudad() {
  89.        return ciudad;
  90.    }
  91.  
  92.    public void setCiudad(String ciudad) {
  93.        this.ciudad = ciudad;
  94.    }
  95.  
  96.    @Override
  97.    public int hashCode() {
  98.        int hash = 5;
  99.        hash = 47 * hash + this.id;
  100.        return hash;
  101.    }
  102.  
  103.    @Override
  104.    public boolean equals(Object obj) {
  105.        if (obj == null) {
  106.            return false;
  107.        }
  108.        if (getClass() != obj.getClass()) {
  109.            return false;
  110.        }
  111.        final Usuario other = (Usuario) obj;
  112.        if (this.id != other.id) {
  113.            return false;
  114.        }
  115.        return true;
  116.    }
  117. }
  118.  

ListaUsuarios.java
Código
  1. package ManagedBean;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import javax.faces.bean.ManagedBean;
  6. import javax.faces.bean.SessionScoped;
  7.  
  8. @ManagedBean
  9. @SessionScoped
  10. public class ListaUsuarios {
  11.  
  12.    private List<Usuario> usuarios;
  13.    private List<String> ciudades;
  14.  
  15.    public ListaUsuarios() {
  16.        usuarios = new ArrayList<>();
  17.  
  18.        ciudades = new ArrayList<>();
  19.        ciudades.add("Lima");
  20.        ciudades.add("Arequipa");
  21.        ciudades.add("Cusco");
  22.        ciudades.add("Tacna");
  23.        ciudades.add("Tumbes");
  24.        ciudades.add("Madre de Dios");
  25.    }
  26.  
  27.    public List<Usuario> getUsuarios() {
  28.        return usuarios;
  29.    }
  30.  
  31.    public void setUsuarios(List<Usuario> usuarios) {
  32.        this.usuarios = usuarios;
  33.    }
  34.  
  35.    public void agregaUsuario(Usuario usuario) {
  36.        usuarios.add(usuario);
  37.    }
  38.  
  39.    public void eliminaUsuario(Usuario usuario) {
  40.        usuarios.remove(usuario);
  41.    }
  42.  
  43.    public List<String> getCiudades() {
  44.        return ciudades;
  45.    }
  46.  
  47.    public void setCiudades(List<String> ciudades) {
  48.        this.ciudades = ciudades;
  49.    }    
  50. }
  51.  

El problema lo tengo en mi página JSF llamada registro.xhtml en donde si lo hago de esta manera no tengo ningún problema, los datos se van guardando y apareciendo correctamente en la pantalla:
Código
  1. <?xml version='1.0' encoding='UTF-8' ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4.      xmlns:h="http://xmlns.jcp.org/jsf/html"
  5.      xmlns:f="http://xmlns.jcp.org/jsf/core">
  6.    <h:head>
  7.        <title>Data Table</title>
  8.    </h:head>
  9.    <h:body>
  10.        <h:form>
  11.            <h:panelGrid columns="2">
  12.                <h:outputLabel for="txtValor" value="Valor:"/>
  13.                <h:inputText id="txtValor" value="#{dato.valor}" label="Valor" required="true"/>
  14.  
  15.                <h:outputLabel for="txtNombre" value="Nombre:"/>
  16.                <h:inputText id="txtNombre" value="#{dato.nombre}" label="Nombre" required="true"></h:inputText>
  17.  
  18.                <h:outputLabel for="btnAgregar"/>
  19.                <h:commandButton id="btnAgregar" action="#{holaMundo.addValor(dato)}" value="Añadir"/>
  20.            </h:panelGrid>
  21.        </h:form>
  22.        <h:dataTable id="tabla" value="#{holaMundo.datos}" var="dato">
  23.            <h:column>
  24.                <f:facet name="header">
  25.                    <h:outputText value="valor"/>
  26.                </f:facet>
  27.                <h:outputText value="#{dato.valor}"/>
  28.            </h:column>
  29.            <h:column>
  30.                <f:facet name="header">
  31.                    <h:outputText value="Nombre"/>
  32.                </f:facet>
  33.                <h:outputText value="#{dato.nombre}"/>
  34.            </h:column>
  35.            <h:column>
  36.                <h:form>
  37.                    <h:commandButton id="btnBorrar" value="Borrar" action="#{holaMundo.removeValor(dato)}"/>
  38.                </h:form>
  39.            </h:column>
  40.        </h:dataTable>
  41.        <br/>
  42.  
  43.  
  44.    </h:body>
  45. </html>
  46.  



Como se ve en el código de la página registro.xhtml primero hay un dataTable y segundo un formulario, pero si es que ahora cambio el orden de ambos controles, y primero pongo el formulario y luego el dataTable, el programa no funciona de forma correcta.

Si cambio a esto:
Código
  1. <?xml version='1.0' encoding='UTF-8' ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4.      xmlns:h="http://xmlns.jcp.org/jsf/html"
  5.      xmlns:f="http://xmlns.jcp.org/jsf/core">
  6.    <h:head>
  7.        <title>Data Table</title>
  8.    </h:head>
  9.    <h:body>
  10.        <h:dataTable id="tabla" value="#{holaMundo.datos}" var="dato">
  11.            <h:column>
  12.                <f:facet name="header">
  13.                    <h:outputText value="valor"/>
  14.                </f:facet>
  15.                <h:outputText value="#{dato.valor}"/>
  16.            </h:column>
  17.            <h:column>
  18.                <f:facet name="header">
  19.                    <h:outputText value="Nombre"/>
  20.                </f:facet>
  21.                <h:outputText value="#{dato.nombre}"/>
  22.            </h:column>
  23.            <h:column>
  24.                <h:form>
  25.                    <h:commandButton id="btnBorrar" value="Borrar" action="#{holaMundo.removeValor(dato)}"/>
  26.                </h:form>
  27.            </h:column>
  28.        </h:dataTable>
  29.        <br/>
  30.  
  31.        <h:form>
  32.            <h:panelGrid columns="2">
  33.                <h:outputLabel for="txtValor" value="Valor:"/>
  34.                <h:inputText id="txtValor" value="#{dato.valor}" label="Valor" required="true"/>
  35.  
  36.                <h:outputLabel for="txtNombre" value="Nombre:"/>
  37.                <h:inputText id="txtNombre" value="#{dato.nombre}" label="Nombre" required="true"></h:inputText>
  38.  
  39.                <h:outputLabel for="btnAgregar"/>
  40.                <h:commandButton id="btnAgregar" action="#{holaMundo.addValor(dato)}" value="Añadir"/>
  41.            </h:panelGrid>
  42.        </h:form>
  43.    </h:body>
  44. </html>
  45.  


Se registran los usuarios pero sus datos están vacíos. No entiendo por qué de esta segunda forma no funciona. Además creo que el programa se vería mejor de la segunda forma pero así no funciona o.O


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Novato pide ayuda con un programa porfavor
Java
pitbull31416 6 5,873 Último mensaje 11 Octubre 2009, 09:05 am
por pitbull31416
[BATCH] Novato ayuda con programa .bat[Solucionado]
Scripting
Iridiel 7 4,939 Último mensaje 13 Enero 2011, 20:19 pm
por Iridiel
[Novato] Ayuda con java y JNA+Regedit
Java
martin0290 4 4,708 Último mensaje 3 Febrero 2012, 16:47 pm
por martin0290
AYUDA con un programa en python soy muy novato!!!
Scripting
d0menek0r 2 2,485 Último mensaje 5 Febrero 2012, 17:09 pm
por d0menek0r
Novato ayuda con programa sencillo en java
Java
luismi_12 4 2,164 Último mensaje 12 Febrero 2013, 15:08 pm
por chocola
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines