Passar uma variavel do jsp para outra classe java

9 respostas
L

Eae pessoal, tudo bem?
Eu sou novo por aqui (e em java e outros tambem) eu tava querendo fazer o seguinte:

na pagina JSP (.do) existe uma variavel, que quando essa pagina é acessada é passada a URL para ela, até aqui tudo bem.
Nessa pagina JSP tem um botão que me manda para outra pagina jsp com um form, quando eu dou submit eu preciso que ele de um redirect para a pagina anterior.

para isso eu pensei no seguinte eu pegar essa variavel com a url da primeira pagina, e passar para uma outra classe java onde, tem o metodo redirect que é usado pela segunda pagina, eu consegui fazer quase tudo eu só não sei como passar essa variavel para a classe java que contem o redirecect

essa é função para ir para a pagina de inclusão...

document.incluirForm.action = 'incluirForm.do';

...e essa para o botão de inclusão

document.Form.action = '/incluirForm.do?acao=incluir';
 document.Form.submit();

esse é o código java para o redirect...

[code]
response.sendRedirect("http://localhost:7001/lista.do")
[code]

...eu queria que em vez dessa url fosse uma variavel ou um metodo que pegue a url da listar.do

caso vocês saibam como passar essa variavel porfavor me deem um exemplo, eu tambem pensei em passar como parâmetro do método contendo o redirect mas eu não sei como chamar o método (get/set por exemplo) na pagina JSP (não sei se tenho que instanciar a classe ou algo do gênero.)

obs: esse codigo NÃO é meu, eu so peguei para estudar e mecher um pouco.
obs2: na lista.do eu realmente insiro um item numa table com as coisas que eu ponho no form.

Eu comecei a estudar essas coisas em menos de um ano então desculpe se não me expressei direito caso vocês precisem saber de mais alguma coisa é só falar.
Obrigado.

9 Respostas

V

L.I.N.S.,

Essa classe Java é uma Servlet??

como vc está invocando esta classe do Jsp?

L

valfrido eu acho que é um servlet sim,mas eu não tenho muito serteza sobre isso (eu sou bem novo por aqui) ela ta assim.

public class Inlcuir{
		
	public void redirec(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

		try {
			response.sendRedirect("http://localhost:7001/listar.do");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

inicalmente era um forward mas eu quis mudar para redirect.

A jsp listar.do é inicial você ja começa nela, para ir para a incluir.do eu uso um botão que te manda para um forward com struts e tal.(meio complicado)

A parada é so passar uma variavel da listar.do para esse “servlet” para ser usado nesse redirect.

V

Para ser uma Servlet ela deva extender de HTTPServlet, e implementar o metodo doPost() ou doGet().
Sendo Sevlet, vc pode pegar o parametro assim:

request.getParameter("nomeParametroVindodoHTML");
L

[quote=valfrido.silva]Para ser uma Servlet ela deva extender de HTTPServlet, e implementar o metodo doPost() ou doGet().
Sendo Sevlet, vc pode pegar o parametro assim:

request.getParameter("nomeParametroVindodoHTML");

ta certo. não é um servlet, teria como pegar aquela variavel?

V

Para vc conseguir pegar tem q ser uma Servlet, action do struts ou managed bean do JSF.
Através de classe java normal vc não consegue se comunicar com Jsp diretamente.

L

valfrido.silva:
Para vc conseguir pegar tem q ser uma Servlet, action do struts ou managed bean do JSF.
Através de classe java normal vc não consegue se comunicar com Jsp diretamente.

Com Servlet so daria como parametro na URL?
você pode me dar um exemplo de como eu faria isso com struts?

V

sim.

Só trabalhei com Struts 1.2 e Faz tanto tempo q nem lembro direto, eh melhor vc procurar na net.

L

alias como parametro acho que não daria certo pois eu estou querendo passar essa URL para a classe java (acho que a nomenclatura é “java bean” ou coisa parecida) para ser usada dentro de um metodo que é chamado na incluir.do e não passar esse valor para a proxima JSP.

L

Ae encontrei uma quase resposta para o meu problema

no JSP você faz isso:

//da import na classe 
<%@page import="NomeDaPackage.NomeDaClasse"%>

//instancia a classe
<%NomeDaClasse X = new NomeDaClasse(); %>

//usa o metodo
<%X.Metodo(); %>

encontrei isso bem aki
http://www.devmedia.com.br/post-16618-Usando-JSP-±Bean–Iniciantes-Parte-I.html

tambem tem partes 2 e 3
http://www.devmedia.com.br/post-16619-Usando-JSP-±Bean–Iniciantes-Parte-II.html
http://www.devmedia.com.br/post-16737-Usando-JSP-±Bean–Iniciantes-Parte-III.html

Bem, meu problema ainda persiste mas isso me ajudou em alguma coisa já!

JOptionPane.showInputDialog("!!!!!!!Feliz ano Novo!!!!!!");
Criado 28 de dezembro de 2010
Ultima resposta 30 de dez. de 2010
Respostas 9
Participantes 2