Galera tenho um dataTable que lista todos os nomes de cliente do banco..
a cada usuario listado, gera um botão excluir e editar do lado.. to tendo problemas com ambos.. mas creio se resolver o de editar, conseguirei o de excluir..
quando cliko no botao editar.. chama outra pagina.. mas os dados estão passando pro outro lado tudo zerado e null, assim ele so chama o id = 0, no banco e nunca altera e nem excluir.. alguem pode me falar como posso fazer essa passagem de parametro? ja tentei com param, inputHiden e com o tomahalk usando o updatelist tive problema com a uri e os jars.. creio eu que o updatelist seria mais facil.. mas queria fazer com parametro..
vo postar os codigos>
O problema `e que quando eu cliko em editar.. ta passando os valores tudo null incluseve a chave primaria (idusuario), dai nao da pra alterar..
PAGINA QUE LISTA E GERA O BOTAO ALTERAR DO LADO
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<title>Lista de Usuarios</title>
<LINK href="estilo.css" type="text/css" rel="stylesheet">
</HEAD>
<body bgcolor="white">
<center><h2>LISTA DE USUARIOS</h2></center>
<div align=center>
<f:view><br><h:dataTable value="#{usuarioBean.todos}" var="usuario">
<h:column>
<b>USUARIO</b> <h:outputText value="#{usuario.nome}"/>
</h:column>
<h:column>
<h:form id="del">
<h:commandLink id="idusuario" value="X" action="#{usuarioBean.alterarUsuario}" >
<f:param name="idusuario" value="#{usuario.idusuario}"></f:param>
</h:commandLink>
</h:form>
</h:column>
</h:dataTable>
<h:form id="dummy" >
<h:commandButton id="novo" value="Novo Usuario" action="#{usuarioBean.novoUsuario}" />
</h:form>
</f:view>
</div>
</body>
</HTML>
Pagina que Altera
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Alterando Novos Usuarios</title>
</head>
<body>
<h2>Alterar Usuario</h2>
<f:view>
<h:form id="cadastro">
<h:panelGrid columns="2">
<h:outputText value=""/>
<h:outputText value="#{usuarioBean.usuarioPojo.idusuario} "/>
<h:outputText value="Nome:"/>
<h:inputText size="25" id="nome" value="#{usuarioBean.usuarioPojo.nome}" />
<h:outputText value="Login:"/>
<h:inputText size="25" id="login" value="#{usuarioBean.usuarioPojo.login}"/>
<h:outputText value="Senha:"/>
<h:inputSecret size="15" id="senha" value="#{usuarioBean.usuarioPojo.senha}"/>
</h:panelGrid>
<h:commandButton value="Alterar" action="#{usuarioBean.update}" />
<h:commandButton value="Cancelar" action="mostrar" />
</h:form>
</f:view>
</body>
</html>
MetodoBean
public String update()throws UsuarioDAOException {
InterfaceUsuarioDAO icdao = new UsuarioDAO();
icdao.atualizar(usuarioPojo);
return "sucesso_up";
}
MetodoDAO
public void atualizar(UsuarioPojo usuarioPojo) throws UsuarioDAOException {
PreparedStatement ps = null;
Connection conn = null;
if(usuarioPojo == null)
throw new UsuarioDAOException("O Valor passado não pode ser lido");
try {
String sql = "update usuarios set nome = ?, login=?, senha =? where idusuario=?";
conn = this.conn;
ps = conn.prepareStatement(sql);
ps.setInt(1, usuarioPojo.getIdusuario());
ps.setString(2, usuarioPojo.getNome());
ps.setString(3, usuarioPojo.getLogin());
ps.setString(4, usuarioPojo.getSenha());
ps.executeUpdate();
} catch (Exception sqle) {
throw new UsuarioDAOException("Erro ao inserir dados" + sqle);
Ainda tem o pojo mais acho que nao 'e necessario, s'o 'e declaracao de variavel e sets e gets
alguem me ajuda?
exemplos?