Bom dia pessoal…Estou com uma dúvida na integração de um JSP com javascript…
Preciso fazer a seguinte operação:
Quando o usuario clica em um botao, abro um pergunta para o usuário se ele confirma ou não a operação.
Se “SIM” seto valores num bean auxiliar …caso contrario volto uma tela do sistema.
Problema: Colocando o seguinte código em meu programa…na carga do JSP ele passa por toda a rotina javascript…ou seja…seta os
valores antes mesmo do usuario clicar no botao… Como faço para evitar isso??? ou seja fazer com que só rode o java script efetivamente no clique do botao…
Rotina javascript inserida no inicio do programa:
function enviar(par)
{
if (par == 'confirmar')
{
var opt = confirm("Confirma?")
if (opt == true)
{
document.detalhamento.submit();
}
else
document.detalhamento.action='history.go()';
}
}
O problema que inserindo códigos javascript na pagina jsp, durante a carga (vejo isso debugando) ele passa por todas as linhas do jsp.
E dentro da funcao javascript tenho alguns métodos set´s em um bean auxiliar de armazenamento.
ex:
function enviar(par)
{
if (par == 'confirmar')
{
var opt = confirm("Aprova Orçamento?")
if (opt == true)
{
beanauxiliar.SetValor1(campo1);
beanauxiliar.SetValor1(campo1);
document.detalhamento.submit();
}
else
document.detalhamento.action='history.go()';
}
}
Ou seja…na carga…como esta passando por todos as linhas do jsp inclusive as acima ele seta valores no bean… independente do usuario ter confirmado operação pela mensagem de alerta…
Apenas lembrando que o jsp roda no server, enquanto o javascript roda no cliente !!!
Não existe integração entre eles !!
O que acontece:
Sua pagina, qdo requisitada, é excutada no server. Todos os scripltes são executados no server, então o server devolve a pagina, sendo esta html. Neste ponto não existe mais JSP. Por isso JSP não se integra com javascript !