[RESOLVIDO] Executar método java com JSP

6 respostas
L

Pessoal preciso de ajuda!!!

Estou com o seguinte problema:

Eu apresento uma lista de objetos, assim:

<div>
		<br>
		<%
			int tamanho_lista = TurismoMBean.getLista_turismo().size();
			for (int i = 0; i < tamanho_lista; i++) {

				TurismoBean cidade = TurismoMBean.getLista_turismo().get(i);

				if (cidade.isCidades() == true) {
		%>
		<div id="<%=cidade.getIdTurismo()%>">
			<p>
				<img onclick="abrirPag('jsp/teste.jsp');"
					src="<%=cidade.getLogo()%>" align="left" width="100" height="70"><%=cidade.getNome()%><br><%=cidade.getEstado()%>
		</div>

		<hr align="center" width="100%" />
		<%
			}
			}
		%>
	</div>

A questão é…
Quando a pessoa clicar na div (ou na imagem) eu devo armazenar um valor referente à aquele objeto.
Eu quero pegar o valor da id da div ou ate mesmo tentar fazer como isso:

<img onclick="abrirPag('jsp/teste.jsp');TurismoMBean.mudaPagina(cidade.getIdturismo())" src="<%=cidade.getLogo()%>" align="left" width="100" height="70">

Pois dessa forma eu iria executar um método no Managed Bean setando o valor da id para uma variável no Managed Bean, assim eu posso utilizar esse valor como referência em qualquer lugar.

Me ajudem!!!
Por favor…

6 Respostas

J

LordLink,

Eu não entendi a sua dúvida. Mas vou tentar responder:

Você está com dificuldade em pegar o valor da div ao ser clicada? Você deve fazer uma função js que no evento onClick da div vai receber esse valor, pegando do id.
Eu também deixaria o id dinâmico.

JQuery te ajuda bastante nisso

L

jaboot

Meu caso é exatamente isso. Preciso pegar o valor da id da div ao ser clicada.
Com relação à função, eu não sei como fazer.

Detalhe: Ao clicar ele executa uma função javascript com ajax para abrir uma página sem carregar a página toda.

JQuery realmente me ajudaria com isso facilmente. O problema é que estou usando MooTools e não estou conseguindo adaptar o jQuery para ser utilizado junto ao MooTools.
Tentei o método jQuery.noConflict(); mas não soube adaptá-lo.

Tudo que eu preciso é pegar esse valor da id da div ao ser clicado pra eu poder usar depois onde eu quiser.

O id já esta dinâmico. Ele recebe o id do objeto daquela div. (atributo id do banco)

Obrigado pela atenção!

J

Vamos lá então

Te recomendo dar aquela lidinha nas funções javascript, eu gosto muito do devguru. Javascript tem uma função para "pegar" os elementos da tela chamado getElementById (tem por nome também, mas pelo id é o mais recomendado). Mas, se você só precisa, por exemplo, passar o id por meio de uma função...
<html>
<head>
<script type="text/javascript">     
function showDivId(divObject){
	alert(divObject.id);
}
</script>  
</head>
<body>
<div id="div1" style="border: 1px coral solid" onClick="showDivId(this);">div 1</div>
<div id="div2" style="border: 1px blue solid" onClick="showDivId(this);">div 2</div>
<div id="div3" style="border: 1px green solid" onClick="showDivId(this);">div 3</div>
</body>
</html>
Dá uma olhada se é mais ou menos isso que você precisa. E se entendeu o que foi feito.
L

É mais ou menos, só nesse caso ai você esta apenas mostrando na tela a id.

Eu preciso necessariamente pegar essa id no javascript de forma que eu consiga recuperar essa valor em outra pagina.

Exemplo:

<div id="div1" style="border: 1px coral solid" onClick="showDivId(this);">div 1</div>  
<div id="div2" style="border: 1px blue solid" onClick="showDivId(this);">div 2</div>  
<div id="div3" style="border: 1px green solid" onClick="showDivId(this);">div 3</div>  

function showDivId(divObject){  
    var referencia = divObject.id;  
}

EM OUTRA PAGINA

<%
variavel = request.getParameter(referencia);
%>

Entendeu?

Acho que estou com dificuldade de explicar, desculpe!

J

LordLink, eu não sei o quanto você conhece de html + javascript, então eu posso estar falando coisa que você já conhece - por favor não se ofenda

Se for abrir uma outra página, você deve enviar essa informação à ela.
Existem dois meios de se fazer isso - por POST ou por GET. Por POST é quando a gente submita (bonito isso!) a página, envia os dados pelo form e talz. Por GET é quando enviamos os dados lá na URL. O famoso Querystring.

GET - quando você for enviar a página, passe um parâmetro pelo link - por exemplo, jsp/teste.jsp?param1=646&param2=seunome&param3=sdfhs…
(? delimita a passagem de parâmetros. O & separa cada parâmetro, se não me engano, você pode passar até 1024 caracteres em uma url e N parâmetros)
Mas isso é péssimo pra enviar dados importantes, como senhas e outras informações confidenciais. Não recomendado MESMO.

POST - quando se submita um form na página
Você pode criar um campo hidden, e no momento do clique do usuário na div, o valor que você quer vai pro campo hidden e você submita o form

Daí você recebe na outra página ou com o nome do parâmetro querystring ou o nome do campo

L

Amigo, muito obrigado pela força!

Acabei passando por parâmetro mesmo.

<div onclick="abrirPag('jsp/menu/menuNavEsquerdo/turismo/mostraTurismo.jsp?param=<%=cidade.getIdTurismo()%>');" id="<%= cidade.getIdTurismo()%>">
Integer meuParam = Integer.parseInt(request.getParameter("param"));

Não ficou bem do jeito que eu queria, mas esta funcionando perfeitamente. Depois, com tempo, eu melhoro o código.

Obrigado!

Criado 14 de outubro de 2011
Ultima resposta 17 de out. de 2011
Respostas 6
Participantes 2