Redireccionamento entre Servlet e jsp

11 respostas
Claudia.pt

Pessoal, mais uma duvida q pra voces deve ser simples!!
Eu tenho o resultado da seleccção de uma primeira combobox que envio pra a servlet e lá é contruida a lista que preeenche uma segunda combobox.
Mas n sei cmo enviar isso de novo pra jsp de forma a manter a selecção.

Alguém me ajuda?

11 Respostas

ozielneto

Basta voce colocar o Segundo combo num form html e fazer o POST ou GET para o .jsp ou servlet.

No JSP ou Servlet voce pode usar request.getParameter para obter o valor selecionado na combo.

Boa sorte

Claudia.pt

Por favor, podes dar uma vista de olhos no meu código?
Cláudia

fabio.nascimento

Tenta fazer algo mais ou menos assim:

Na tua servlet vc vai acumulando os valores de acordo com as selecoes
feitas nas combos anteriores

Mais ou menos assim:

1 - Guardar o valor da primeira combo

String primeiroParametro = GetParametro("primeiraCombo", httpservletrequest);

2 - Selecionar o valor da segunda combo de acordo com a primeira combo

3 - guardar o valor da segunda combo (ValorGuardaCombo)

4 - Vai acumulando os valores que vc quer que seja retornado para sua pagina.jsp assim:

String acumula = acumula + "?primeiraCombo=" + httpservletrequest.getParameter("primeiraCombo");
       acumula = acumula + "&SegundaCombo=" + ValorGuardaCombo;

5 - Feito isso passe novamente para a pagina.jsp seus valores recuperados
Tipo assim:

String ret = ret + String.valueOf((new StringBuffer(String.valueOf("path da sua aplicacao"))).append("pagina.jsp?").append(acumula));

6 - Agora na sua pagina.jsp vc vai recuperando os valores e setando cada combo de acordo com os valores recebidos

QQ duvida é só gritar.

Fabio Nascimento

Claudia.pt

Podes dar uma vista de olhos ao q tenho feito?
Obrigada,
Cláudia

fabio.nascimento

Claudia,

Coloca o código aqui então pra gente analisar e ver o q está acontecendo.

QQ problema, pode mandar uma MP tbm !
Mas seria interessante colocar aqui para que outras pessoas possam te ajudar tbm, ok.

Abraços

Fabio Nascimento

Claudia.pt

Xiçaaaa é nessas alturas q detesto programar a parte web… ainda por cima o meu prazo é 4ªfeira.

Na pagina jsp começo com:

<body>
<jsp:include page = "/DispacherServlet?action=initInsertAv" />

para que a servlet possa iniciar as comboboxes.

String action = null;
		action = request.getParameter("action");
		System.out.println(action);
			
		// insertAvaria.jsp	
		if (action.equals("initInsertAv"))
		{
			// Calls method
			java.util.List listaData = lusiEJB.getAllEquipTypes();
			request.setAttribute("listaData", listaData);

			java.util.List listaMarcas = lusiEJB.getAllEquipMarcas("1");
			request.setAttribute("listaMarcas", listaMarcas);
		}

Depois na jsp, aquando da escolha na 1ªcombobox devolvo à servlet pra q esta calcule a lista q preenche a 2ªcombo:

<select name="typeEq" onchange="location.href='http://localhost:1000/LusiEquipWeb/DispacherServlet?action=2ndInsertAv&typeEq='+ this.value;">
		<% 
			for (java.util.Iterator  iter = listaData.iterator(); iter.hasNext(); )
			{
				// Cria um obj EquipType
				com.lusiequip.model.EquipType eqType = (com.lusiequip.model.EquipType) iter.next();

				out.print("<option value=" + eqType.getCodigo() + ">" + eqType.getTipo() + "</option>");
			}
			}
		%>                       				
</select>

Agora a servlet calcula a 2ªcombo:

if (action.equals("2ndInsertAv"))
		{
			// Calls method
			java.util.List listaMarcas = lusiEJB.getAllEquipMarcas(typeEq);
			request.setAttribute("listaMarcas", listaMarcas);
			request.getRequestDispatcher(response.encodeURL("insertAvaria.jsp?action=2ndInsertAv")).forward(request, response);
			
		}

O erro está aki. Qdo volta à pagina jsp ela começa sempre do inicio devido à directiva jsp_inclue :frowning:
Bem aqui vão os ficheiros em anexo pra verem melhor

Agradeço muito qq ajuda,
Cláudia

J

e porque trabalah com web? rs., cada uma…

Claudia.pt

Javaman,
No mundo do trabalho, nas empresas é complicado ter uma pessoa a trabalhar na lógica de negócio e outra na camada de apresentação. A não ser que seja uma empresa grande e vocacionada pra desenvolvimento de software.
Assim, quem desenvolve uma app J2EE trata de todas as camadas, o que é o meu caso, mesmo que não tenha tanta aptidão pra desenvolver pra Web.
Cláudia

fabio.nascimento

Não esquente a cabeça com comentários Claudia.

Aqui é um fórum democratico e as pessoas dizem o que querem, o q importa mesmo é q todo mundo aqui gosta de ajudar um ao outro.

Peguei seus código, estou analisando, agora na parte da manhã não posso, mas mais pro final da tarde te respondo com alguma coisa mais concreta ok.

Fabio Nascimento

nicoweda

Claudia,

Uma dica pra vc que não gosta de desenvolvimento web é estudar um pouco as tagllibs, elas podem te ajudar a construir as suas paginas JSP.

Com elas vc iriar diminuir a complexibilidade das suas paginas JSP, deixando a manutenção muuuuuito mais simples!

Boa sorte!
Se precisar de dicas sobre esse assunto, agente pode conversar mais à respeito…

fabio.nascimento

Caro nicoweda

Vc possui algum material ou link sobre taglibs pra que eu estude tbm??

Obrigado

Fabio Nascimento

Criado 13 de novembro de 2006
Ultima resposta 14 de nov. de 2006
Respostas 11
Participantes 5