Ajax, chamada de método

4 respostas
R

Olá pessoal!

Abaixo está meu código javaScript…

function go(){
    alert("ta vindo aqui!");
        document.form.action="metadados.do?id=consultarFontes";
        document.form.submit();
    
    }

E aqui onde ele é chamado…

if(opcao.equals("especialidade")){
            javax.swing.JOptionPane.showMessageDialog(null, opcao +"! Chegou aqui!");%>
    <body onload="go()">

O JOptiojnPane aparece… o que indica que ele chega lá… o unico problema é que o metodo go() nao é acionado, pois o alert nao é mostrado…

Primeiro eu gostaria de saber se alguém tem ideia do pq!

Segundo, gpstaria que alguem me dissesse se faz sentido essa chamada para a action… pelo que eu tenho estudado deveria funcionar…

Abraço e muito obrigado!

4 Respostas

H

Cara explica melhor o fluxo disso…qual a idéia ? oq vc realmente quer fazer ?

Ai vc diz como vc pensou e mostra o código…, fica muito mais simples de te ajudar ;D

R

Pois entao… essa página é chamada po rum outro metodo, javascript… mas isso nao tem problema… o código inteiro da Especialidade.jsp está aqui:

imports.....


html>
    script src="prototype.js" type="text/javascript">/script>
    script type="text/javascript"> 
    function go(){
    alert("ta vindo aqui!");
        document.form.action="metadados.do?id=consultarFontes";
        document.form.submit();
    }
    /script>  

    <%
    
    String s = request.getParameter("pesquisarFontes");
    
    JOptionPane.showMessageDialog(null, "s =" + s);
    
    if(s != null && !s.equals("naoPesquisar")){
        JOptionPane.showMessageDialog(null, "Entrou no primeiro if");
        String opcao = request.getParameter("opcao");
        if(opcao.equals("especialidade")){
            JOptionPane.showMessageDialog(null, "Entrou no segundo if. Opção = " + opcao);%>
    body onLoad="go()">
    <%JOptionPane.showMessageDialog(null, "Chegou depois do body onload=go()");
	}
    else{
	//TODO
	}
    }
    else{
    Vector fontes =  (Vector)request.getAttribute("fontes");
    %>
    body>
        select name="espec">
        option value="Raio-x">Raio-x</option>
        <%
        if(fontes!=null){
        for(int i=0; i<fontes.size();i++){%>
        option value="<%=fontes.get(i)%>"><%=fontes.get(i)%>/option>
        <%
        }
		}
    }%>
        
        form styleId="form">
            html:hidden property="id" value="consultarFontes" />
        /form>
...

Ps. Tive que tirar o sinal < de cada tag pois nao conseguia postar.

Ignorem a falta de padrao… depois de funcionar eu arrumo os detalhes…

Entao… esse valor da variavel String s está setada como pesquisar, ou seja, entra no if… o problema é que essa linha do

body on load=“go()”

é simplesmente ignorada pelo q parece… ela nao chama o alert… nada acontece…

Alguma ideia!!??

H

Putz cara que isso eim ? rsrsrsr manda esse arquivo para o meu email pq entendi @#@# nenhuma rsrsrsrsr

Vc ta usando componentes de swing dentro do JSP ? nunca vi isso O_o…

[email removido]

flw

H

Seguinte, olhei seu código.

  1. Sempre por padrão crie as tag htmls básicas:
    HTML, HEAD, TITLE e o BODY, mesmo o browser nao dando erro, sempre é bom vc seguir a estrutura padrão.

  2. Sua função go(), está dentro do BODY e já que vc quer chamar no evento onload do body, ela tem que estar dentro do HEAD, pois quando o browser for ler o onload essa função ainda não existe na página, por isso ela não é chamada.

  3. no arquivo especialidade.jsp vc possui DOIS BODY, e somente um fechando, mesmo fechando os dois esta errado, só pode haver um.

Resumindo, retire a função go() do BODY e adicione ela no HEAD.

Qualquer coisa posta ai…

abraços

Criado 24 de maio de 2007
Ultima resposta 12 de jun. de 2007
Respostas 4
Participantes 2