Numa aplicação eu tenho uma tela chamada consultaMaterial que tem um Form (Struts) e um Action. Do action dessa página eu posso ir para uma página cadastraMaterial que tem seu próprio Form.
Só que ambas as páginas tem os mesmos campos nos dois Forms (uma para pesquisa e uma para inserção e alteração). O que acontece é que quando eu vou de uma página para outra os campos preenchidos no formulário HTML de uma são passados para a outra. Então, se eu clico no botão “Novo Material” na página de consulta e tinha alguma coisa no campo “nome”, por exemplo, o formulário da página de cadastro vem com o nome preenchido.
A única solução que eu achei até agora é colocar nomes diferentes nos formulários. É isso mesmo ou tem uma solução menos trabalhosa?
A única solução que eu achei até agora é colocar nomes diferentes nos formulários. É isso mesmo ou tem uma solução menos trabalhosa?
Um abraço.
Acredito que isso só ocorre pois seus dados estão na sessão, certo?
Se você já não precisa mais dos dados do primeiro Form, ou já colocou eles em outro lugar, você pode simplesmente anular a seção, ou o campo que você queira setando NULL, ou coisas do tipo.
Fora isso, use request, ou troque os nomes…
C
crisadias
Kivanio,
o Form da página está com o scope=request. Só que ainda assim a informação chega na próxima página. A ordem de execução é assim:
Como eu faço para apagar a informação que está no request?
Obrigado pela ajuda.
Mauricio_Linhares
Chame reset na mão (no tal form) quando for carregar a outra página.
C
crisadias
Maurício,
já tentei resetar o Form, mas o problema, acredito, é o request que está sendo enviado. Se eu troco o method por get aparece na barra de endereços:
E essas informações são interceptadas pelo Form da página cadastroUsuario.jsp que é aberta ao fim do processamento dessa chamada.
jgbt
se vc usar os mesmos nomes, isso vai acontecer.
vc pode fazer uma gambiarra com java script e limpar os campos na mão.
não é a melhor solução, mas funciona.
[]'s
Mauricio_Linhares
Mas existe um action que recebe essa requisição ou ela vai direto pra um .jsp? Você implementou o método reset lá no seu ActionForm?
C
crisadias
Existe um action que recebe a requisição e chama o action da outra página. Eu implementei o reset para limpar as variáveis do form. Isso bastaria?
Mauricio_Linhares
Deveria bastar, porque quando ele fosse passado de um lado pro outro o método reset deveria ser chamado antes dele ser reutilizado.
Comportamento estranho esse… :shock:
C
crisadias
vou tentar fazer de novo e ver se consigo limpar.
Obrigado.
C
crisadias
Olha outra coisa curiosa:
Agora eu coloquei um botão de voltar em cada uma das duas páginas. Quando eu clico em voltar na segunda página ele volta, passa direto pela primeira e vai para o índice da aplicação. Como se eu tivesse clicado no voltar das duas páginas.
O parâmetro do formulário é passado adiante. Eu posso até ler ele na página de índice se quiser.
C
crisadias
há… mancada minha… e das feias…
Tava tratando o reset no formulário da página de consulta e não na página de cadastro que é o que eu queria limpar…
E lá se foram horas de bons serviços prestados…