| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 09:45:18
|
g4j
GUJ Ranger
![[Avatar]](/images/avatar/bea3c20edb84a0dd83a99a9a7274bc67.jpg)
Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline
|
Srs,
Acredito que esse problema seja comum até.
Tem no meu sistema um cadastro, onde os usuários preenchem os campos e confirma, prosseguindo pra outra tela. Só que alguns infelizes estão usando o botão Voltar do browser e confirmando o cadastro anterior novamente. Então, tá duplicando registros!
Umas das saídas seria tirar os botões da barra de navegação, mas só consigo fazer isso sem popup no firefox.
Alguem já teve que resolver esse problema, ou alguem tem alguma solução?
|
Gerson Luiz Chagas
SCJP 5.0
SCWCD 5.0
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 09:56:53
|
jwalker
Thread.start()
![[Avatar]](/images/avatar/0eca5fa085089d49d7af0e6e862746f1.jpg)
Membro desde: 23/10/2008 13:41:00
Mensagens: 31
Offline
|
Velho,
tenta dar um reset no teu form.
form.reset();
Abraços
|
Mulher[] ml = getMulheres();
int aDeHoje = (int) (Math.random()*ml.length);
Mulher m = ml[aDeHoje];
m.setMuda(true);
m.setBonita(true);
m.setFuckGood(true); |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 10:01:54
|
g4j
GUJ Ranger
![[Avatar]](/images/avatar/bea3c20edb84a0dd83a99a9a7274bc67.jpg)
Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline
|
jwalker wrote:Velho,
tenta dar um reset no teu form.
form.reset();
Abraços
Não posso dar reset. É que os dados da aba/tela anterior precisam ficar ali, pois a segunda tela depende dos dados da primeira e tenho que manter os dados sempre na tela. Só que o usuário não usa o botão voltar do formulário, e sim o botão Voltar do browser (history.back()).
|
Gerson Luiz Chagas
SCJP 5.0
SCWCD 5.0
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 11:25:10
|
Giulliano
GUJ Master
![[Avatar]](/images/avatar/7f5a17b792b687fc4c227a5c5e569dd8.jpg)
Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline
|
Eu tive esse problema recentemente....a minha idáia era capturar o evento de clicar no voltar, mas isso é impossível.
Então eu achei duas solulções...uma é não permitir q o cara volte pra pagian anterioir colocando a tag
e outra solução é se vc estiver usando o Hibernate sempre chamar o update ao invés do save...pq o update veririfica se o cara existe e se não existir chama o save...se existir dá update...
[]'s
|
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi
<UnTouChAbLe> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 12:21:41
|
g4j
GUJ Ranger
![[Avatar]](/images/avatar/bea3c20edb84a0dd83a99a9a7274bc67.jpg)
Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline
|
Olá Giulliano, obrigado pela resposta,
Giulliano wrote:Eu tive esse problema recentemente....a minha idáia era capturar o evento de clicar no voltar, mas isso é impossível.
Então eu achei duas solulções...uma é não permitir q o cara volte pra pagian anterioir colocando a tag
Legal. Essa alternativa funciona tanto no IE qto no FF? Pergunto isso porque eu achei uma alternativa parecida, porém só funciona no FF:
Giulliano wrote:
e outra solução é se vc estiver usando o Hibernate sempre chamar o update ao invés do save...pq o update veririfica se o cara existe e se não existir chama o save...se existir dá update...
[]'s
Ok, uso hibernate no sistema, mas quando o botão voltar é clicado, não existe o campo chave preenchido (hidden), portanto meu objeto fica sem a chave, sendo assim, tanto faz update ou save, correto?
This message was edited 1 time. Last update was at 05/12/2008 12:22:08
|
Gerson Luiz Chagas
SCJP 5.0
SCWCD 5.0
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 12:30:16
|
dricorj
Thread.start()
Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline
|
eu uso window.history.forward(1); e funciona no IE e no FF.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 14:09:03
|
Giulliano
GUJ Master
![[Avatar]](/images/avatar/7f5a17b792b687fc4c227a5c5e569dd8.jpg)
Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline
|
Cara eu não sei se a solução do history é cross browser...mas eu acredito que sim.
Esse tipo de erro requer "gambiarras práticas"...não tem jeito. Se seu campo chave não esta preenchido vc pode optar por fazer uma busca no banco pra ver se o registro existe (isso se vc tiver os valores)...
enfim, existem deiversas maneiras de resolver isso caso a caso...provavelmente nenhuma delas será elegante ou 100%.
|
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi
<UnTouChAbLe> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 14:28:00
|
g4j
GUJ Ranger
![[Avatar]](/images/avatar/bea3c20edb84a0dd83a99a9a7274bc67.jpg)
Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline
|
Giulliano wrote:Cara eu não sei se a solução do history é cross browser...mas eu acredito que sim.
Esse tipo de erro requer "gambiarras práticas"...não tem jeito. Se seu campo chave não esta preenchido vc pode optar por fazer uma busca no banco pra ver se o registro existe (isso se vc tiver os valores)...
enfim, existem deiversas maneiras de resolver isso caso a caso...provavelmente nenhuma delas será elegante ou 100%.
É verdade. Ja pensei em fazer validação buscando no banco. Acredito que seja a forma que mais me agrada. Mas penso que isso pode se repetir em diversos locais do sistema, aí fica impraticável ficar fazendo esse tipo de verificação pra contornar.
Existem outras formas, inclusive ja vi sistemas que abrem um popup (window.open) tirando a barra de botões. Isso até minimiza o problema, mas não o resolve.
|
Gerson Luiz Chagas
SCJP 5.0
SCWCD 5.0
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 14:40:21
|
jgbt
GUJ Master
![[Avatar]](/images/avatar/25df35de87aa441b88f22a6c2a830a17.png)
Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline
|
Ola,
a melhor alternativa no lado cliente ainda é algo na linha do:
no lado servidor tem outras opções. Uma delas é o token, que impede o mesmo formulario de ser enviado 2x.
Quase todos frameworks web tem controle de tokens.
[]´s
|
João Bier
Desenvolvedor Java |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2008 15:31:56
|
g4j
GUJ Ranger
![[Avatar]](/images/avatar/bea3c20edb84a0dd83a99a9a7274bc67.jpg)
Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline
|
jgbt wrote:Ola,
a melhor alternativa no lado cliente ainda é algo na linha do:
no lado servidor tem outras opções. Uma delas é o token, que impede o mesmo formulario de ser enviado 2x.
Quase todos frameworks web tem controle de tokens.
[]´s
Boa jgbt,
vou tratar de ver como isso funciona...
|
Gerson Luiz Chagas
SCJP 5.0
SCWCD 5.0
|
|
|
 |
|
|