Campos de formulários com mesmo nome  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
crisadias
Entusiasta Java

Membro desde: 09/05/2005 10:59:04
Mensagens: 18
Localização: Rio de Janeiro - RJ
Offline

Bom dia,

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?

Um abraço.

Cristiano Araujo Dias
Desenvolvedor de Soluções
Rio de Janeiro - RJ
[Yahoo!] [MSN]
skill_ufmt
JavaEvangelist
[Avatar]

Membro desde: 20/05/2003 18:02:23
Mensagens: 318
Localização: Cuiabá - MT
Offline

crisadias wrote:Bom dia,

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...

Windows: Not Plug & Play, but Bug & Pay!
_________________________________________________
Kivanio Pereira Barbosa
Bacharel em Ciência da Computação

CUIABÁ JAVA USERS
www.cajumt.com.br
[WWW] aim icon [MSN] [ICQ]
crisadias
Entusiasta Java

Membro desde: 09/05/2005 10:59:04
Mensagens: 18
Localização: Rio de Janeiro - RJ
Offline

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:

consultaMaterial.jsp (que tem um campo nome para pesquisa)
consultaMaterialAction.do (remete para o action)
ConsultaMaterialAction.class (retorna o forward para cadastroMaterialAction.do)
cadastroMaterialAction.do (que faz alguma verificação e preenche selects)
CadastroMaterialAction.class (que faz alguma verificação e preenche selects)
cadastroMaterial.jsp (que mostra o formulário e no nome aparece o que estava na página jsp anterior)

Como eu faço para apagar a informação que está no request?

Obrigado pela ajuda.

Cristiano Araujo Dias
Desenvolvedor de Soluções
Rio de Janeiro - RJ
[Yahoo!] [MSN]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Chame reset na mão (no tal form) quando for carregar a outra página.

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
crisadias
Entusiasta Java

Membro desde: 09/05/2005 10:59:04
Mensagens: 18
Localização: Rio de Janeiro - RJ
Offline

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:

http://localhost:7001/testes/consultaUsuarioAction.do?
pagina=consultaUsuario&
chave=2&
matricula=2&
nome=3&
opcao=Novo

E essas informações são interceptadas pelo Form da página cadastroUsuario.jsp que é aberta ao fim do processamento dessa chamada.


Cristiano Araujo Dias
Desenvolvedor de Soluções
Rio de Janeiro - RJ
[Yahoo!] [MSN]
jgbt
GUJ Master
[Avatar]

Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline

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

João Bier
Desenvolvedor Java
[Email]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

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?

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
crisadias
Entusiasta Java

Membro desde: 09/05/2005 10:59:04
Mensagens: 18
Localização: Rio de Janeiro - RJ
Offline

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?

Cristiano Araujo Dias
Desenvolvedor de Soluções
Rio de Janeiro - RJ
[Yahoo!] [MSN]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

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...

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
crisadias
Entusiasta Java

Membro desde: 09/05/2005 10:59:04
Mensagens: 18
Localização: Rio de Janeiro - RJ
Offline

vou tentar fazer de novo e ver se consigo limpar.

Obrigado.

Cristiano Araujo Dias
Desenvolvedor de Soluções
Rio de Janeiro - RJ
[Yahoo!] [MSN]
crisadias
Entusiasta Java

Membro desde: 09/05/2005 10:59:04
Mensagens: 18
Localização: Rio de Janeiro - RJ
Offline

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.

Cristiano Araujo Dias
Desenvolvedor de Soluções
Rio de Janeiro - RJ
[Yahoo!] [MSN]
crisadias
Entusiasta Java

Membro desde: 09/05/2005 10:59:04
Mensagens: 18
Localização: Rio de Janeiro - RJ
Offline

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...

valeu pela ajuda...

Cristiano Araujo Dias
Desenvolvedor de Soluções
Rio de Janeiro - RJ
[Yahoo!] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team