Olá pessoal,
Iniciante em Struts é cheio de dúvidas!!! rsrs… Estou com a seguinte dúvida, estou utilizando Strus e em uma busca no BD utilizando o a classe DAO eu recebo um arraylist e exibo na tela o resultado em uma tabela. Nesta tabela em cada linha é exibida o resultado da pesquisa, queria na primeira coluna em cada linha exibir um Link ou algo parecido que ao clicar ele pegasse o ID e utilizasse o o procedimento findContatoByIdContato do DAO para então exibir uma outra tela onde ou possa editaro elemento escolhido, porém não sei utilizar o ID do objeto que já esta na página ConsultaContatoSuccess.jsp. Como faço isso?
Classe ContatoDAO.java
Código:
package com.myapp.struts;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
/**
*
* @author suporte
*/
public class ContatoDAO {
/** Creates a new instance of ProdutoDAO */
public ContatoDAO()throws Exception {
Class.forName(jdbc_driver).newInstance();
Connection conn = DriverManager.getConnection(jdbc_url, jdbc_user, jdbc_password);
statement = conn.createStatement();
}
public void close() {
try {
this.statement.close();
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
public Contato findContatoByIdContato(int idContato) {
Contato contato = null;
try {
ResultSet rs =
this.statement.executeQuery( "SELECT * FROM contato WHERE id_contato="
+ idContato);
if (rs.next()) {
contato = new Contato( rs.getInt(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
rs.getString(10),
rs.getString(11));
}
} catch (SQLException sqle) {
System.out.println(sqle.getMessage());
}
return contato;
}
public ArrayList listAllContatos() {
ArrayList contatos = new ArrayList();
Contato contato;
try {
ResultSet rs = this.statement.executeQuery("SELECT * FROM contato ORDER BY nome_contato");
while(rs.next()) {
contato = new Contato( rs.getInt(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
rs.getString(10),
rs.getString(11));
contatos.add(contato);
}
} catch(SQLException sqle) {
System.out.println(sqle.getMessage());
}
return contatos;
}
public ArrayList findContatoByNome(String nomeContato) {
ArrayList contatos = new ArrayList();
Contato contato;
try {
ResultSet rs = this.statement.executeQuery("SELECT * FROM contato WHERE nome_contato LIKE '%" + nomeContato + "%'");
while(rs.next()) {
contato = new Contato( rs.getInt(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
rs.getString(10),
rs.getString(11));
contatos.add(contato);
}
} catch(SQLException sqle) {
System.out.println(sqle.getMessage());
}
return contatos;
}
public boolean InsertContato(Contato contato) {
String nomeContato = contato.getNomeContato();
String sobrenomeContato = contato.getSobrenomeContato();
String empresaContato = contato.getEmpresaContato();
String enderecoContato = contato.getEnderecoContato();
String cidadeContato = contato.getCidadeContato();
String estadoContato = contato.getEstadoContato();
String emailContato = contato.getEmailContato();
String dddContato = contato.getDddContato();
String telefoneContato = contato.getTelefoneContato();
String celularContato = contato.getCelularContato();
boolean teste = false;
try {
int linhas = this.statement.executeUpdate("INSERT INTO contato VALUES(null,'"
+nomeContato +"','"
+sobrenomeContato+"','"
+empresaContato+"','"
+enderecoContato+"','"
+cidadeContato+"','"
+estadoContato+"','"
+emailContato+"','"
+dddContato+"','"
+telefoneContato+"','"
+celularContato+"')");
if (linhas > 0)
teste = true;
else
teste = false;
} catch (SQLException sqle) {
System.out.println(sqle.getMessage());
}
return teste;
}
public boolean DeleteContato(String idContato) {
boolean teste = false;
try {
int linhas = this.statement.executeUpdate( "DELETE FROM contato WHERE id_contato ='" + idContato + "'");
if (linhas > 0)
teste = true;
else
teste = false;
} catch (SQLException sqle) {
System.out.println(sqle.getMessage());
}
return teste;
}
public boolean AlteraContato(Contato contato) {
int idContato = contato.getIdContato();
String nomeContato = contato.getNomeContato();
String sobrenomeContato = contato.getSobrenomeContato();
String empresaContato = contato.getEmpresaContato();
String enderecoContato = contato.getEnderecoContato();
String cidadeContato = contato.getCidadeContato();
String estadoContato = contato.getEstadoContato();
String emailContato = contato.getEmailContato();
String dddContato = contato.getDddContato();
String telefoneContato = contato.getTelefoneContato();
String celularContato = contato.getCelularContato();
boolean teste = false;
try {
String id = String.valueOf(idContato);
String sql = "";
sql = "UPDATE contato SET " +
"nome_contato = '"+nomeContato+"'" +
", sobrenome_contato = '"+sobrenomeContato+"'" +
", empresa_contato = '"+empresaContato+"'" +
", endereco_contato = '"+enderecoContato+"'" +
", cidade_contato = '"+cidadeContato+"'" +
", estado_contato = '"+estadoContato+"'" +
", email_contato = '"+emailContato+"'" +
", ddd_contato = '"+dddContato+"'" +
", telefone_contato = '"+telefoneContato+"'" +
", celular_contato = '"+celularContato+"'" +
" WHERE id_contato =" + idContato;
int linhas = this.statement.executeUpdate(sql);
if (linhas > 0)
teste = true;
else
teste = false;
} catch (SQLException sqle) {
System.out.println(sqle.getMessage());
}
return teste;
}
private Statement statement;
private static String jdbc_driver= java.util.ResourceBundle.getBundle("com/myapp/struts/ApplicationResource").getString("jdbc.driver");
private static String jdbc_url = java.util.ResourceBundle.getBundle("com/myapp/struts/ApplicationResource").getString("jdbc.url");
private static String jdbc_user = java.util.ResourceBundle.getBundle("com/myapp/struts/ApplicationResource").getString("jdbc.user");
private static String jdbc_password = java.util.ResourceBundle.getBundle("com/myapp/struts/ApplicationResource").getString("jdbc.password");
}
Página ConsultaContatoSuccess.jsp
Código:
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<%@ page errorPage="erro.jsp" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Consulta Contato</title>
</head>
<body>
<h1>Resultado da Consulta</h1>
<table border="1">
<thead>
<tr>
<th>Editar</th>
<th>Excluir</th>
<th>ID</th>
<th>Nome</th>
<th>Sobrenome</th>
<th>Empresa</th>
<th>Endereco</th>
<th>Cidade</th>
<th>Estado</th>
<th>Email</th>
<th>DDD</th>
<th>Telefone</th>
<th>Celular</th>
</tr>
</thead>
<logic:iterate name="contatosnome" id="contatos" >
<tbody>
<tr>
<td>Link ou Botão para Excluir AQUI!!!</td>
<td>Link ou Botão para Editar AQUI!!!</td>
<td><bean:write name="contatos" property="idContato"/></td>
<td><bean:write name="contatos" property="nomeContato"/></td>
<td><bean:write name="contatos" property="sobrenomeContato"/></td>
<td><bean:write name="contatos" property="empresaContato"/></td>
<td><bean:write name="contatos" property="enderecoContato"/></td>
<td><bean:write name="contatos" property="cidadeContato"/></td>
<td><bean:write name="contatos" property="estadoContato"/></td>
<td><bean:write name="contatos" property="emailContato"/></td>
<td><bean:write name="contatos" property="dddContato"/></td>
<td><bean:write name="contatos" property="telefoneContato"/></td>
<td><bean:write name="contatos" property="celularContato"/></td>
</tr>
</logic:iterate>
</tbody>
</table>
</body>
</html>
Ah… preciso fazer isso utilizando Struts.
Se acharem melhor posso enviar os Beans que utilizo para exibir os resultados
Grato a todos.
Wallfox