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!