JAVA rich:dataTable + JSF + hibernate

0 respostas
W

Ola a tds os amigos,
bem eu estou tentando mostrar o conteudo de uma tabela usando rich:datatable hibernate e jsf porém não retorna nda …
não vejo nenhum erro também … alguem pode dizer o q q eu estou fazendo de errado !? Estou começando e estou meio perdido!

Aqui vão os codigos:

@Entity 
@Table (name="usuario") 
public class Usuario implements Serializable{
    @Id 
    @Column(name = "usuarioid")
    @GeneratedValue
    private int usuarioid;
    
    @NotEmpty(message="  Preencha seu nome")
    @Length(min=3, max=20,message="Tamanho máximo(20) ou mínimo(3) de nome excedido")
    private String nome;
    
    @Length(min=3, max=15,message="Tamanho máximo(15) ou mínimo(4) de login excedido")
    @NotEmpty(message="  Preencha o login")
    private String login;
    
    @NotEmpty(message="  Preencha a senha")
    @Length(min=4, max=15, message="Tamanho máximo(15) ou mínimo(4) da senha excedido")
    private String senha;
    
    @Email(message="  Preencha o Email corretamente")
    private String email;
    
    @NotEmpty(message="  Preencha o nome do personagem") 
    private String nomechar;
    
    @NotEmpty(message="  Preencha o nome do clan") 
    private String nomeclan;
    
    
    @Temporal(TemporalType.DATE)
    private Date nascimento;
    
    @NotNull(message="  Preencha newsletter") 
    private int newsletter;
    
    @NotNull(message="  Preencha nivel") 
    @Max(value=4, message="Valor máximo de nível excedido")
    @Min(value=0, message="Valor mínimo de nível excedido")
    private int nivel;
...
get´s e set´s
public class UsuarioBean {

    private Usuario usuario = new Usuario();
    private List lista = new ArrayList();

    
    public UsuarioBean(){
    }
    
    public List listatodosUsuarios() {
        Session session = HibernateUtil.getSession();
        Transaction tx = session.beginTransaction();
        Query q = session.createQuery("from Usuario");
        List usuarios = q.list();    
        tx.commit();
        return usuarios;
    }

    public String salvar() {
        Session session = HibernateUtil.getSession();
        Transaction tx = session.beginTransaction();
        try {
            if (!validate(usuario)) {
                // return to the input page if there were any validation errors
                return null;
            }
            session.merge(usuario);
            tx.commit();
            usuario = new Usuario();
            tx = null;
        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
        return "novo";
    }

    public static void addErrorMessage(String msg) {
        FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
        FacesContext fc = FacesContext.getCurrentInstance();
        fc.addMessage(null, facesMsg);
    }

    public static void addSuccessMessage(String msg) {
        FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg);
        FacesContext fc = FacesContext.getCurrentInstance();
        fc.addMessage("successInfo", facesMsg);
    }

    /**
     * Validates the given customer.
     * @return true if there were no validation errors, false otherwise.
     */
    private boolean validate(Usuario usuario) {
        ClassValidator customerValidator = new ClassValidator(Usuario.class);
        // get the invalid values 
        InvalidValue[] msgs = customerValidator.getInvalidValues(usuario);
        if (msgs.length > 0) {
            for (InvalidValue msg : msgs) {
                // add an error message for each invalid value, these
                // messages will be shown to the user
                addErrorMessage(msg.getMessage());

            }
            return false;
        }
        return true;
    }

    

    public List getLista() {
        return listatodosUsuarios();
        
    }

    public void setLista(List lista) {
        this.lista = lista;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
}

aqui a pagina onde deveria aparecer a tabela :

<h:form>
            <rich:dataTable id="person" border="1" width="100%" value="#{UsuarioBean.lista}" var="u" 
                            rendered="#{not empty UsuarioBean.lista}" rows="10">
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Id"/>
                    </f:facet>
                    <h:outputText value="#{u.usuarioid}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Nome"/>
                    </f:facet>
                    <h:outputText value="#{u.nome}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Login"/>
                    </f:facet>
                    <h:outputText value="#{u.login}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Senha"/>
                    </f:facet>
                    <h:outputText value="#{u.senha}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Nascimento"/>
                    </f:facet>
                    <h:outputText value="#{u.nascimento}">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Email"/>
                    </f:facet>
                    <h:outputText value="#{u.email}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Nome do Char"/>
                    </f:facet>
                    <h:outputText value="#{u.nomechar}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Nome do Clan"/>
                    </f:facet>
                    <h:outputText value="#{u.nomeclan}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="NewsLetter"/>
                    </f:facet>
                    <h:outputText value="#{u.newsletter}"/>
                </h:column>
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Nivel"/>
                    </f:facet>
                    <h:outputText value="#{u.nivel}"/>
                </h:column>
                
                <f:facet name="footer">
                    <rich:datascroller />
                </f:facet>
                
            </rich:dataTable> 
        </h:form>

esse é o xml config do hibernate:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory name="session1">
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/teste</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">adminadmin</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.format_sql">true</property>
    <property name="hibernate.hbm2ddl.auto">update</property>
    <property name = "hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    <mapping class="dbpersistencia.Usuario"/>
    <mapping class="dbpersistencia.Noticia"/>
  </session-factory>
</hibernate-configuration>

Essa linha :
org.hibernate.hql.classic.ClassicQueryTranslatorFactory

eu coloquei recentimente, porque vi em um post gringo da vida um jovem q estava com o mesmo problema q eu e havia solucionado o problema com essa linha …
Bem … se alguma viva alma tiver uma luz pra me dar agradeço muito …
nem que seja um tutorial já ta valendo … um abraço e obrigado!

Criado 5 de dezembro de 2008
Respostas 0
Participantes 1