Ações diferentes em um mesmo form no Struts

6 respostas
B

Em um sistema de gestão de contatos que estou desenvolvendo, nós usamos um mesmo formulário tanto para inserir um novo contato tanto para editar um contato existente. O problema é que inserir e alterar são duas ações diferentes. Como que eu faço para quando eu for editar um contato a ação do form seja “/Alterar” e e quando for um contato novo a ação seja “/Inserir”?

Grato

6 Respostas

cv1

Nao entendi mto bem a pergunta, mas nao eh soh mapear a mesma Action duas vezes? :slight_smile:

B

Eu não expliquei direito mesmo não. (eu sou péssimo em explicar as coisas)
O que eu quero é um form que, em um dado instante, quando eu clico no submit ele usa a Action /Listar, mas em um outro instante use a Action /Alterar.
Eu posso fazer isso usando duas páginas idênticas, mas com a Action do form diferente, mas eu queria fazer no mesmo form.

Agora deu pra entender?

R

seguinte cria um campo no seu form que vai conter a acao (incluir ou alterar)
provavelmente vc tem um outro form que lista para o usuario poder escolher o que ele vai alterar, e quando ele escolhe vc carrega os dados para ele poder alterar, ae nessa hora vc seta a acao para alterar e o default da acao e incluir, assim vc pode ter um unico Action para acoes diferentes do seu form

Espero ter ajudado
[]s
Daniel

B

Valeu pela dica. Acho que vou fazer isso mesmo. Mas como mandar pra Actions diferentes nao tem jeito mesmo nao ne?

M

Segue em anexo um exemplo em javascript

<html:button property="Incluir" onclick="javascript:processa('inclui.do', '0')" />
<html:button property="Incluir" onclick="javascript:processa('inclui.do', '1')" />

<html:button property="Alterar" onclick="javascript:processa('altera.do', '0')" />
<html:button property="Alterar" onclick="javascript:processa('altera.do', '1')" />



<script language="javascript">

function processa(page,op) 	
{
	var form = document.form;
	form.action = page;
	form.opcao.value = op;
	form.submit();
}

</script>
B

Valeu mario, isso era exatamente o que eu queria.

Criado 14 de outubro de 2003
Ultima resposta 15 de out. de 2003
Respostas 6
Participantes 4