Olá, estou fazendo uma aplicação com banco de dados basica, com entrada de 2 inteiros e 3 Strings… Ja consigo inserir linhas no banco (PostgreSQL) sem problemas…
Porém não consigo buscar objetos no banco… Estou criando a aplicaçao no eclipse com WTP e meu tomcat é o 5.5…
Quanto ao meu codigo está assim…
A primeira Jsp que passa o parâmetro com o nome a ser buscado…
A servlet abaixo, que recebe esse parâmetro e chama a DAO…
UsuarioDAO busdao = new UsuarioDAO();
Usuario usu = new Usuario();
String usunome = req.getParameter("buscar");
usu.setNome(usunome);
try {
usu = busdao.Buscar(usunome);
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
req.setAttribute("usuario", usu);
RequestDispatcher rd = req.getRequestDispatcher("resultado.jsp");
rd.forward(req, res);
}
A servlet DAO, Buscar
public Usuario Buscar(String usu) throws NamingException, SQLException{
pc = new PoolConexao();
conn = pc.getConnection();
ps=conn.prepareStatement(SQL_BUSCAR);
ps.setString(1,"%"+usu+"%");
rs = ps.executeQuery();
Usuario usuario = new Usuario();
if(rs.next()){
usuario.setId(rs.getInt("id"));
usuario.setNome(rs.getString("nome"));
usuario.setIdade(rs.getInt("idade"));
usuario.setSexo(rs.getString("sexo"));
usuario.setProduto1(rs.getString("produto1"));
usuario.setProduto2(rs.getString("produto2"));
}
return usuario ;
}
A tag que recebe o resultado
public class ResultadoUsuario extends TagSupport {
private Usuario resultado;
public int doStartTag() throws JspException {
JspWriter out = pageContext.getOut();
try {
out.println("<center>");
out.println("<table border=2>");
out.println("<tr>");
out.println("<td>Id:</td>");
out.println("<td>Nome:</td>");
out.println("<td>Idade:</td>");
out.println("<td>Sexo:</td>");
out.println("<td>Produto1:</td>");
out.println("<td>Produto2:</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>" + resultado.getId() + "</td>");
out.println("<td>" + resultado.getNome() + "</td>");
out.println("<td>" + resultado.getIdade() + "</td>");
out.println("<td>" + resultado.getSexo() + "</td>");
out.println("<td>" + resultado.getProduto1() + "</td>");
out.println("<td>" + resultado.getProduto2() + "</td>");
out.println("</tr>");
out.println("</table>");
out.println("</center>");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SKIP_BODY;
}
public Usuario getResultadoUsuario() {
return resultado;
}
public void setResultadoUsuario(Usuario resultado) {
this.resultado = resultado;
}
Por fim, essa tag esta sendo chamada na jsp que exibiria o resultado
<%@ page isELIgnored="false"%>
<%@ taglib uri="Taglib" prefix="resul" %>
<html>
<body>
<resul:ResultadoUsuario resultado="${usuario}" />
<center>
<p><a href="http://localhost:8080/AAprendiz2/cadastro.jsp">Voltar </a></p>
</center>
</body>
</html>
O erro que ele esta apresentando é:
[color=red]org.apache.jasper.JasperException: /resultado.jsp(7,2) Unable to find setter method for attribute: resultado[/color]
E no servidor ele apresenta esse erro:
[color=red]o índice da coluna está fora do intervalo: 1, numero de colunas:0[/color]
Será que alguem conseguiria me ajudar? Se for nescessario eu colo outras partes do codigo aqui…
Obrigado!