Ajuda em pagina da web

8 respostas
analuiza.fagundes

Bom dia amigos , tenho uma pagina de cadastro de dvds (inclusao , esclusao , atelração e consulta)
tenho uma pagina principal que dependndo da ação(inclusao , exclusao .. etc) chama uma acao no servlet principal . A inclusao eu consegui fazer , so que a alteração eu nao consegui , pois a inclusao simplesmente pega os parametros do formulário , grava no banco de dados e dá um RequestDispatcher para uma pagina em jsp que informa que o cadastro foi realizado.

Já o alterar , começa por uma lista que exibe todos os dvd's cadastrados com um link do lado para alterar , quando clicar no link , ele deve pegar os parametros e alterar no banco´. è aí que eu me enrolo . Alguem poderia me ajudar ??

indexDVD.jsp
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<% String msg = (String)request.getAttribute("mensagem");%>
<%=msg%>   

<a href="dvd?acao=listar">Listar DVD</a>
<br>
<a href="adicionarDVD.html">Adicionar DVD</a>
<br>
<a href="PrepararListarRemover.jsp">Remover DVD</a>
<br>
<a href="PrepararListaAlterarDVD.jsp">Alterar DVD</a>
</body>
</html>

Servet dvd

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String titulo;
		String ano;
		String genero;
		String produtora;
		
		String acao;
		
		DVDItem dvdItem = new DVDItem();
		
		acao = request.getParameter("acao");
		DvdDAO dvdDAO= new DvdDAO();

		try
		{
			
			if (acao.equals("adicionar")) 
			{			
								
				titulo = request.getParameter("titulo");
				ano = request.getParameter("ano");
				genero = request.getParameter("genero");
				produtora = request.getParameter("produtora");
			

				if( titulo == null || titulo.isEmpty())
					throw new DVDException("Adicionar","0 item titulo do formulario nao pode estar vazio");			
				 
				
				if(ano == null || ano.isEmpty()) 
					throw new DVDException("Adicionar","0 item ano do formulario nao pode estar vazio");
				
	
				if(genero.equals("selecione")) 
					throw new DVDException("Adicionar","0 item genero do formulario nao pode estar vazio");
						
				dvdItem = new DVDItem();
				dvdItem.setTitle(titulo);
				dvdItem.setYear(Integer.parseInt(ano));
				dvdItem.setGenre(genero);
				dvdItem.setProdutora(produtora);
				
				dvdDAO.adicionar(dvdItem);			
				
				request.setAttribute("mensagem", " DvD " + titulo + " inserido com sucesso!! <br />");
				RequestDispatcher  RD = request.getRequestDispatcher("indexDVD.jsp");
				RD.forward(request, response);
	
				System.out.print("adicionar");
			} 
			else if( acao.equals("listar") )
			{
				ArrayList listaDVD;
				
				listaDVD = dvdDAO.listar();
				System.out.print("listar");
				if (listaDVD == null || listaDVD.isEmpty())
					throw new DVDException("Listar","Não existem DVDs cadastrados!!!");
								
				request.setAttribute("LISTA_DVD", listaDVD );
				RequestDispatcher  RD = request.getRequestDispatcher("ListarDVD.jsp");
				RD.forward(request, response);
				
			}
			else if(acao.equals("excluir"))
			{
				dvdDAO.excluirDVD(dvdItem);
				System.out.print("excluir");
				
			}
			else if(acao.equals("alterar"))
			{
				// ?? não sei fazer
				dvdDAO.alterarDVD(dvdItem);
				System.out.print("alterar");
			}
			
		} catch (DVDException e){			
			request.setAttribute("erro", e);
			RequestDispatcher  RD = request.getRequestDispatcher("Error");
			RD.forward(request, response);
			
		}		
		
	}

8 Respostas

rpb.cold

entao eu acho q vc tem q fazer o seguinte:

Qdo tiver os valores da lista popular a tabela de itens já cadastrados com um campo alterar, esse campo alterar pode ser um link só q um link q passe o valor do id do registro por exemplo.
Ex: <a href=altera.jsp?codigo=XXXXX>Alterar</a>

Quando vc clicar no link vc faz um metodo que recupera as informações de um registro à partir de um criterio, repopula um form html por exemplo e qdo fizer as alterações dos valores vc faz o metodo atualizar exatamente com o registro que vc ja tinha pego para popular o form.

Eu tenho um exemplo que eu fiz na faculdade exatamente sobre cadastro de DVD tipo um mini loja, vou ver se entro e te passo.

Espero q tenha entendido a ideia

finotti

vc tem que incluir o ID do dvd a ser alterado na URL que chama a página de alteração.

&lt; a href="PrepararListaAlterarDVD.jsp?id=10"&gt;Alterar DVD&lt;/ a&gt;

na página que lista todos os dvds, vc inclui dinamicamente o ID de cada dvd no link.

depois disso, eu faria assim:
1 - quando o usuário clicar no link do dvd a ser alterado, vc passa como parâmetro para o servlet o ID desse dvd.
2 - o servlet recebe esse ID e faz uma consulta(buscarPorId) pra trazer os dados desse dvd.
3 - o usuário será direcionado para a tela de cadastro/edição com os parâmetros do dvd já preenchidos no formulário.
4 - o usuário altera os dados.
5 - quando o usuário submeter o form, vc recupera os parametros no servlet e faz um UPDATE na tabela.

[]'s

analuiza.fagundes

eu entendi o que vc quis dizer … mas como eu vou saber qual o id do dvd nesta linha , esse 10 é o q ?

< a href="PrepararListaAlterarDVD.jsp?id=10">Alterar DVD</ a>

Pode me dar um exmplo ?

rpb.cold

ve se ajuda roda ele e ve o que ele ta fazendo:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class ExemploDinamic {
	public static void main(String[] args){
		List<String[]> dvds = new ArrayList<String[]>();
		String[] informacoes = {"13","Todo mundo em panico","Comedia"}; //imagine que esse é um objeto dvd e vai guardar
		//ID, NOME, TIPO
		dvds.add(informacoes);
		
		
		//exemplo para vc popular o campo id no link
		//imagine que vc esta na sua pagina jsp por exemplo
		for(Iterator it = dvds.iterator(); it.hasNext() ;){
			String[] valores = (String[])it.next();
			//lembrando que estou colocando posicao 0 pq o codigo esta na posicao 0, agora se vc
			//tiver trabalhando com um objeto do tipo bean vc pode dar um obj.getID() por exemplo
			System.out.println("<a href=pagina.jsp?codigo="+valores[0]+">Alterar DVD</a>");
		}	
	}
}
analuiza.fagundes

Eu não entendi , desculpa.

rycmaster

A idéia é essa mesma! vc vai ter que jogar como parâmetro para o servlet o id do item de DVD que vc quer atualizar, então com o id vc faz uma consulta no banco de dados que devolve um DVD em seguida vc faz o UPDATE.

E como vc vai pegar o id do DVD a partir do jsp? bom se vc conseguir listar os DVDs na página então vc consegue o id de cada um, para cada objeto DVD listado vc cria um link que chama o servlet mandando o id como parâmetro.

simples =D

analuiza.fagundes

Ahh sim , aora eu acho que foi , vou fazer aki …

analuiza.fagundes

Obrigado pela ajuda amigos , fucnionou , á minha duvid era so como pegar oid , mas ja esta tudo ak !

Criado 18 de novembro de 2008
Ultima resposta 19 de nov. de 2008
Respostas 8
Participantes 4