Exibir uma consulta com jsp na index.jsp

4 respostas
Arkimedes

Olá galera!!

Gostaria de saber como faço uma consulta ao banco para exibir na minha index.jsp, ou seja, sem intermédio de uma ação disparada por um botão. Quando a index.jsp for acessada deverá exibir a consulta.
Tentei de várias formas, mas não consegui.
Alguém tem alguma idéia?

Abraços!!

4 Respostas

sawamu

Você pode colocar a logica p/ acessar o BD em um Servlet, e ao inves de chamar index.jsp, vc chama o mapeamento para o servlet…
daí o servlet executa primeiro, monta o que vc precisa e depois no servlet vc faz um dispatch para seu jsp…
vc pode colocar os dados no escopo de requisicao e recuperar no seu jsp com requestScope.minhaLista.

Arkimedes

Bom… não entendi muito bem. Mas o que tenho que fazer é enviar os valores de um campo (form html) para Servlet. A Servlet vai chamar a método responsável pela consulta (classe DAO) com base nos valores informados. E retornar para apresentação na jsp, que no caso é a própria index. Eu fiz para outros casos, como cadastrar, exlcuir. Todos através de uma ação realizada com um submit.

O que quero é:

<input type="radio" name="cargo" value="PRESIDENTE" > <%= aqui tenho que mostrar os valores do banco com base no value deste campo  %>

Abraços!

sawamu

nãos sei se vou conseguir me expressar bem aqui, mas pra resolver isso eu faria mais ou menos assim:

criaria uma Servlet, e implementaria no doGet a funcionalidade necessária p/ recuperar a informação necessária do DAO, e alimentaria um bean tipo… CargosBean.

Neste CargosBean eu teria os atributos conforme abaixo:

class CargosBean { public DadosPresidente getPresidente() { .... // crio o objeto DadosPresidente com os dados necessarios para presidente. } public DadosPrefeito getPrefeito() { ...// mesma coisa pra prefeito... } }

Então no doGet, eu criaria uma instancia deste CargosBean todo preenchido…
Adicionaria ele no escopo de request…
e faria um forward com esses dados para que eles possam ser usados na jsp conforme abaixo:

... request.setAttribute("cargos", cargosBean) request.getRequestDispatcher("index.jsp").forward(request, response);

Pronto… agora é só pegar essses dados no meu jsp…

Arkimedes

Minha classe bean é a Candidato. Nela tenho id, nome, partido, sexo, cargo, data_nascimento.

Na index.jsp tenho um campo radio onde tenho que listar o nome e o partido por exemplo para cada cargo.

Seria algo do tipo. Deve ser carregado logo na chamada da index.jsp

while(resultset.next()){
PRESIDENTE
<input type="radio" name="cargo" value="PRESIDENTE"> <%= nome_candidato_presidente %> | <%= partido_candidato %> <br />
GOVERNADOR
<input type="radio" name="cargo" value="GOVERNADOR"> <%= nome_candidato_governador %> | <%= partido_candidato %> <br />
}

Como posso obter os valores desses campos de formulário para a Servlet e retornar o resultado para a jsp apenas quando acesso a index.jsp?

Infelizmente não estou com meus códigos aqui.
Mas basicamente tenho
? PrincipalServlet - carrega a requisição
? Candidato - bean das informações do candidato
? DAOCandidato - contém o método que faz a consulta
? FabricaConexao - contém os métodos que fazem a conexção com o banco

Abração!!

Criado 3 de novembro de 2010
Ultima resposta 3 de nov. de 2010
Respostas 4
Participantes 2