Como impedir que uma página seja submetida diversas vezes

Tenho algumas páginas de cadastro no jsf e gostaria de usar uma rotina para impedir o usuário submeter mais de uma vez uma página.
É bastante comum quando o usuário faz um cadastro e por alguma razão a página demora para concluir o cadastro, ele fica precionando diversas vezes o botão de cadastrar na esperença de tornar a conclusão do cadastro mais rapida. O problema é que essa ação faz com que o cadastro seja feita diversas vezes e tenho a necessidade de impedir isso.
Parece que existe um pattern que implementa essa funcionalidade, mas não sei qual seria… Será que alguém teria esse conhecimento ???

hum…solucao javascript…após clicar no botao de submeter, disabilite o botao.

[]'s

[quote=“Diana”]hum…solucao javascript…após clicar no botao de submeter, disabilite o botao.

[]'s[/quote]

… e após o carregar habilite novamente, tipo no load do body!

flw!

Bem, javacsript não seria a solução que estou procurando… não considero uma boa prática fazer um tratamento como esse no lado cliente… ainda mais que já existe um pattern que resolve isso numa boa…

mas essa é uma ação do lado do cliente !!! :sad:
… mas se vc achar o pattern q faz isso … post ai!

flw!

Mas se for para utilizar javascript a ação será realizada no lado cliente… estou errado ???

Se ja existe um pattern que resolve pq vc não o usa?!
Ou vc não sabe se existe?

A informação que me foi passada em um curso que eu fiz é que existe… parece que o nome desse pattern é token, mas não achei nada direcionado a isso…
Vou mandar depois do almoço um e-mail pra ele é pedir alguns detalhes, mas eu queria ir adiantando alguma coisa desde já…

Está certo! e qual é o problema ?

Eu costumo utilzar um …

… na classe de persistência, e este resultado poderia ser encaminhado para a view que validaria a liberação do botão!

Cara eu ultilizo o conceito de Tokens.

Tokens servem com um ouvinte de ação que dá tratamento especial a ações sensiveis e ações com formularios sensiveis. para cada ação que possui um formulario sensivel, o ouvinte cria um string unica, chamada TOKEN. então o ouvinte coloca tal token tanto na solicitação quanto na sessão.Quando o formulario sensivel é submetido, uma nova solicitação é gerada e uma ação sensivel é executada. Mas antes que a ação sensivel seja executada, o ouvinte desta ação verifica se ambos os TOKENS estão presentes e são identicos. Se for este o caso, a ação sensivel é executada do contrario é emitida uma exceção.

Exemplos do livro JavaServerPages Avançado, o capitulo 7 possui exemplos de gerenciamento de eventos e ressubissões de formulario sensivel.

http://authors.phptr.com/advjsp/code/sourceco.jar o capitulo é 7

Mas vc teria algum link que daria mais detalhes sobre o tokens ??? As pessoas falam muito em utilizar javascript para esse tipo de situação, mas eu não considero uma boa solução… O pior são aqueles que acham interessante resolver diversos tipos de problemas com javascript como validação de dados, submeter para outra página qdo tiver vários botões de submit e outras coisas que pode ser implementadas via código…

Cara,
aqui no meu trampo eu fiz assim, quando o cara clica no botao eu armazeno os valores do form e aponto para uma definição com uma mensagem de espera e com a tag meta do html, forçando um refresh instantaneo na tela, ai eu devolvo os valores para o form bean e executo a busca!
No meu caso estou usando tiles e struts para isso!
Não sei quais o framework’s vc usa, as vezes com TOKEN fica melhor mesmo!

Dá uma olhada nesse link:

http://javaalmanac.com/egs/javax.servlet.jsp/myformts.jsp.html?l=rel

:wink: