Boa tarde pessoal, estou com uma dúvida,
Eu tenho uma tela que lista todos os usuários e seus respectivos atributos. Ao lado de cada um deles tem um botão que redireciona para uma outra página para que eu poça edita-lo. Porém, ao ir para a outra página eu queria que passasse o valor “id” para que a pessoa não tenha que digitar o id.
Tela Principal:
<h2>Cadastro de Usuários:</h2>
<p:messages id="messages" />
<p:dataTable var="usuario" value="#{UsuarioMB.usuarios}">
<p:column headerText="Id">
<h:outputText value="#{usuario.id}" />
</p:column>
<p:column headerText="Nome">
<h:outputText value="#{usuario.nome}" />
</p:column>
<p:column headerText="Senha">
<h:outputText value="#{usuario.senha}" />
</p:column>
<p:column headerText="Descrição">
<h:outputText value="#{usuario.descricao}" />
</p:column>
<p:column headerText="Data de Cadastro">
<h:outputText value="#{usuario.dataCadastro}" />
</p:column>
<p:column headerText="Açôes">
<p:commandButton action="atualizarUsuario.xhtml"
icon="ui-icon-pencil" style="background-color: yellow;">
<f:param name="idUsuario" value="usario.id" />
</p:commandButton>
<p:commandButton ajax="true"
action="#{usuarioMB.remove(usuario.id)}" icon="ui-icon-trash"
style="background-color: red;" update="@form">
</p:commandButton>
</p:column>
</p:dataTable>
<br />
<footer>
<p:commandButton value="Novo" icon="ui-icon-plus"
action="cadastrarUsuario.xhtml" update="messages"
style="background-color: green;">
</p:commandButton>
<!-- <p:commandButton value="Voltar" icon="ui-icon-arrowreturnthick-1-w"
action="index.xhtml" update="messages">
</p:commandButton> -->
</footer>
</h:form>
Tela Atualização:
<h:head>
</h:head>
<h:body>
<h:form>
<p:messages id=“messages” />
<p:panelGrid columns=“2”>
<p:outputLabel for=“id” value=“ID:” />
<p:spinner id=“id” value="#{UsuarioMB.usuario.id}" />
<p:outputLabel for="nome" value="Nome:" />
<p:inputText id="nome" value="#{UsuarioMB.usuario.nome}" />
<p:outputLabel for="senha" value="Senha:" />
<p:inputText id="senha" value="#{UsuarioMB.usuario.senha}" />
<p:outputLabel for="descricao" value="Descrição:" />
<p:inputTextarea id="descricao"
value="#{UsuarioMB.usuario.descricao}" />
<p:commandButton value="Atualizar" icon="ui-icon-star"
action="#{UsuarioMB.atualizar}" update="messages">
</p:commandButton>
<footer>
<p:commandButton value="Voltar" icon="ui-icon-arrowreturnthick-1-w"
action="usuario.xhtml" update="messages">
</p:commandButton>
</footer>
</p:panelGrid>
</h:form>
</h:body>
ManagedBean:
package com.devmedia.managedbeans;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.jboss.jandex.TypeTarget.Usage;
import com.devmedia.dao.UsuarioDAO;
import com.devmedia.model.Usuario;
@ManagedBean(name=“UsuarioMB”)
@ViewScoped
public class UsuarioManagedBean {
private Usuario usuario;
private UsuarioDAO usuarioDAO;
private List<Usuario> usuarios;
public UsuarioManagedBean() {
usuario = new Usuario();
usuarioDAO = new UsuarioDAO();
usuarios = usuarioDAO.listUsuarios();
}
public void limparUsuario() {
usuario = new Usuario();
usuarios = usuarioDAO.listUsuarios();
}
public void cadastrarUsuario() throws SQLException {
if (usuarioDAO.insertUsuario(usuario)) {
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Sucesso!", "Usuário cadastrado com sucesso!"));
limparUsuario();
} else {
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro!",
"Erro no cadastr de usuário!"));
}
}
public void removerUsuario() throws SQLException {
if (usuarioDAO.removeUsuario(usuario)) {
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Sucesso!", "Usuário removido com sucesso!"));
limparUsuario();
} else {
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro!",
"Erro ao remover usuário!"));
}
}
// public void atualizar(int idUsuario) throws SQLException {
// usuario = usuarioDAO.buscarUsuario(idUsuario);
// if (usuarioDAO.atualizarUsuario(usuario)) {
// FacesContext.getCurrentInstance().addMessage(
// null, new FacesMessage(FacesMessage.SEVERITY_INFO,
// "Sucesso!", "Usuário atualizado com sucesso!"));
// limparUsuario();
// } else {
// FacesContext.getCurrentInstance().addMessage(
// null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro!",
// "Erro ao atualizar usuário!"));
//
// }
// }
public void atualizar() throws SQLException {
if (usuarioDAO.atualizarUsuario(usuario)) {
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Sucesso!", "Usuário atualizado com sucesso!"));
limparUsuario();
} else {
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro!",
"Erro ao atualizar usuário!"));
}
}
public void remover(int idUsuario) throws SQLException {
if (usuarioDAO.remove(idUsuario)) {
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Sucesso!", "Usuário removido com sucesso!"));
limparUsuario();
} else {
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro!",
"Erro ao remover usuário!"));
}
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public List<Usuario> getListaUsuarios() {
return usuarios;
}
public void setListaUsuarios(List<Usuario> listaUsuarios) {
this.usuarios = listaUsuarios;
}
public UsuarioDAO getUsuarioDAO() {
return usuarioDAO;
}
public void setUsuarioDAO(UsuarioDAO usuarioDAO) {
this.usuarioDAO = usuarioDAO;
}
public List<Usuario> getUsuarios() {
return usuarios;
}
public void setUsuarios(List<Usuario> usuarios) {
this.usuarios = usuarios;
}
}
DAO:
package com.devmedia.dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.devmedia.model.Usuario;
import com.devmedia.util.Connect;
public class UsuarioDAO extends Connect {
public Usuario buscarUsuario(int idUsuario) {
Usuario usuario = new Usuario();
Statement st = null;
ResultSet rs = null;
try {
PreparedStatement preparedStatement = connect().prepareStatement("select * from usuario where id=?");
preparedStatement.setInt(1, idUsuario);
rs = preparedStatement.executeQuery();
usuario.setId(rs.getInt(1));
usuario.setNome(rs.getString(2));
usuario.setSenha(rs.getString(3));
usuario.setDescricao(rs.getString(4));
usuario.setDataCadastro(rs.getDate(5));
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (connect() != null) {
connect().close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
return usuario;
}
// lista todos os usuarios cadastrados no banco de dados
public List<Usuario> listUsuarios() {
ArrayList<Usuario> lista = new ArrayList<Usuario>();
Statement st = null;
ResultSet rs = null;
try {
st = connect().createStatement();
String sql = "select * from usuario ";
rs = st.executeQuery(sql);
while (rs.next()) {
Usuario usuario = new Usuario();
usuario.setId(rs.getInt(1));
usuario.setNome(rs.getString(2));
usuario.setSenha(rs.getString(3));
usuario.setDescricao(rs.getString(4));
usuario.setDataCadastro(rs.getDate(5));
lista.add(usuario);
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (connect() != null) {
connect().close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
return lista;
}
/**
* Inserção do Usuário no banco
*
* @param Usuario {@link com.devmedia.model.Usuario}
* @return boolean Sucesso ou Falha
* @throws SQLException
*/
public boolean insertUsuario(Usuario usuario) {
try {
PreparedStatement preparedStatement = connect().prepareStatement(
"insert into usuario (nome, senha, descricao, data_cadastro) values(?,?,?,?)");
preparedStatement.setString(1, usuario.getNome());
preparedStatement.setString(2, usuario.getSenha());
preparedStatement.setString(3, usuario.getDescricao());
preparedStatement.setDate(4, new java.sql.Date(new Date().getTime()));
preparedStatement.execute();
return true;
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
return false;
} finally {
try {
if (connect() != null) {
connect().close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
public boolean removeUsuario(Usuario usuario) {
try {
PreparedStatement preparedStatement = connect().prepareStatement("delete from usuario where nome=?");
preparedStatement.setString(1, usuario.getNome());
preparedStatement.execute();
return true;
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
return false;
} finally {
try {
if (connect() != null) {
connect().close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
public boolean atualizarUsuario(Usuario usuario) {
try {
PreparedStatement preparedStatement = connect().prepareStatement("update usuario set nome = ?, senha =?, descricao=? where id=?");
preparedStatement.setString(1, usuario.getNome());
preparedStatement.setString(2, usuario.getSenha());
preparedStatement.setString(3, usuario.getDescricao());
preparedStatement.setInt(4, usuario.getId());
preparedStatement.execute();
return true;
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
return false;
} finally {
try {
if (connect() != null) {
connect().close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
public boolean remove(int idUsuario) {
try {
PreparedStatement preparedStatement = connect().prepareStatement("delete from usuario where id=?");
preparedStatement.setInt(1, idUsuario);
preparedStatement.execute();
return true;
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
return false;
} finally {
try {
if (connect() != null) {
connect().close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(UsuarioDAO.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
}