Estou usando o modelo DAO, e criei uma estrutura para conter vários métodos como lista todos, excluir, atualizar para uma classe
de agendamento. O Código abaixo implementa uma pesquisa, o nome do arquivo desse trecho de código é AgendamentoDAOImpl
public Agendamento pesquisar(String data) throws AgendamentoDAOException {
PreparedStatement smt = null;
ResultSet rs = null;
String html = "";
html += "<html>";
html += "<body>";
try{
smt = conn.prepareStatement("select * from agendamento where data like ?");
rs = smt.executeQuery();
while (rs.next()){
html += "Proprietario:" + rs.getString("propveiculo") + "<br/>";
html += "Data:" + rs.getString("data") + "<br/>";
}
rs.close();
smt.close();
}
catch( SQLException err ){
throw new AgendamentoDAOException( err );
}
finally {
ConnectionAgendamentoFactory.close( conn, smt, rs);
}
// TODO Auto-generated method stub
return null;
}
E já fiz algo semelhante para listar todos os agendamentos usando um jsp, e isso funcionou.
Agora com relação ao código acima, quando coloco a variavel data vem a mensagem
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 25 in the jsp file: /pesquisaAG.jsp data cannot be resolved
Mesmo tentando colocar a váriavel data entre aspas duplas vem a mensagem de erro:
An error occurred at line: 25 in the jsp file: /pesquisaAG.jsp
Type mismatch: cannot convert from Agendamento to List
O que eu pretendo fazer é uma busca através da Data e apresentar os dados,
na liha referete a List<Agendamento> ag=dao.pesquisar(data);
Esse data na verdade aponta para uma variável de nome data que o método dao.pesquisa usa para efetuar a pesquisa e te retornar algo.
Só que vc não declarou essa variavel anteriormente.
por isso a mensagem: /pesquisaAG.jsp data cannot be resolved…
Esse recho de código está no servlet do form.
para essa finalidade vc precisa ter um servlet separado desse arquivo (View) do seu form.
Como vc está usando servlet. O idela é que vc
crie o Agendamento form para o usuario pesquisar e quando efetuar o post desse form no botão pesquisar esse form seja postado para um servlet(Controler) que vai acessar o seu dao.pesquisar(data) e te retornar uma lista com os resultados que vc obtiver no banco de dados de acordo com a pesquisa do usuario.
Com servlet vc não consegue ter isso no mesmo arquivo do form(View) a não ser que vc utilze Ajax tb é claro.
Essa implementação que vc está fazendo vc pode encontrar com detalhes na apostila gratuita da Caelum fj-21.
outra dica é que vc use StringBuilder ao invés de String no seu servlet, faça uma pequisa sobre isso e descobrirá o motivo.
Usar o for( Object:list) (“Chamado de for aprimorado”) tb é bem vindo no seu projeto vai te ajudar bastante…
Usando somente o Servlet (usando o GET parte HTML e parte de processamento com POST.
Criando dois JSP, um arquivo com formulário usando método POST apontando para uma segunda página JSP.
Dessas duas formas eu consigo fazer a pesquisa
Mas eu queria que isso fosse feito no modelo DAO, pois eu quero separar as regras de negócio com banco de dados.