DispatchAction Dúvida

10 respostas
N

Como eu chamo dois métodos diferentes em uma JSP dentro do mesmo form???

Aguardo ajudas

10 Respostas

marciobarroso

Oi Nino.

Vc precisa definir um parameter no seu action-mapping do struts-config.xml.
Em um campo hidden com o name = ao parameter especificado, vc especifica no value o nome do método q será executado na action.

Tem uma aplicação de exemplo q eu fiz para um tutorial q estou montando.

vc pode baixar o código fonte no post http://www.guj.com.br/posts/preList/48847/256025.java#256025

Dúvidas é só perguntar.

N

Certo eu setei no struts=config

Mas quando eu declaro ele assim
<html:hidden property=“operation” value=“metodo1” />

ele funciona blz… mas queria saber como eu coloco duas chamadas de metodo… como se fosse mais ou menos assim

<html:hidden property="operation" value="botaoMetodo1" />

<html:hidden property="operation" value="botaoMetodo2" />

mas não funciona

cado

Vc poderia alterar o valor do hidden por Javascript ou pode fazer de uma forma mais elegante usando LookupDispatchAction. Da uma pesquisada sobre ele, qualquer duvida vc pergunta. :wink:

marciobarroso

Faz assim:

&lt;html&gt;
&lt;head&gt;
&lt;script&gt;
   function setOperacao(metodo) {
        document.getElementById('operacao').value = metodo;
        document.forms[0].submit(); 
   }
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;form ... &gt;
   &lt;input type=hidden name=operacao&gt;

  ...

  &lt;input type=button value="Salvar" onclick="setOperacao('salvar');"&gt;
  &lt;input type=button value="Excluir" onclick="setOperacao('excluir');"&gt;

&lt;/body&gt;
&lt;/html&gt;

Veja que esta é uma forma de se fazer … pode não ser a mais correta.

[]'s

N

CAra estou tentando fazer a horas desse jeito q vc me passo e não estou conseguindo…

Pq vc coloco como não pode ser a mais correta.

cado

Nino:
CAra estou tentando fazer a horas desse jeito q vc me passo e não estou conseguindo…

Pq vc coloco como não pode ser a mais correta.

A maneira mais elegante ao meu ver é usando LookupDispatchAction, onde vc soh usa java e nao javascript. :wink:

N

O problema ‘cado’ é que estou trabalhando em um projeto pronto…

cado

Nino:
O problema ‘cado’ é que estou trabalhando em um projeto pronto…

Entao usa Javascript.

Aqui num projeto antigo tbm, fizemos com html:button ficou =/- assim:

<html:button styleClass="botao-input" 
					                     property="Gerar" 
					                     value="Gerar" 
					                     onclick="Javascript:gerar('pdf');"/>
		
<html:button styleClass="botao-input" 
					                     property="Gerar" 
					                     value="Excel" 
					                     onclick="Javascript:gerar('xls');"/>

e o javascript:

function gerar(tipo) {
				document.formRecebimentoBrindes.operacao.value = "";


				if(tipo == 'pdf') {
					document.formRecebimentoBrindes.operacao.value = 'gerarEtiquetas';
					document.formRecebimentoBrindes.submit();
				}
    			if (tipo == 'xls') {
    				document.formRecebimentoBrindes.operacao.value = 'gerarEtiquetasExcel';
    				document.formRecebimentoBrindes.submit();
    			}

Nos novos projetos estamos usando LookupDispatchAction. :wink:

N

Há agora sim… funciono que é uma beleza…

Valeu karaaaaaaaaaaaaaaaaa…

Brigadaço…

Abs

marciobarroso

Nino:
CAra estou tentando fazer a horas desse jeito q vc me passo e não estou conseguindo…

Pq vc coloco como não pode ser a mais correta.

Na minha solução só faltou identificar o input com o id:

<input type=hidden name=operacao id=operacao>

[]'s

Criado 27 de dezembro de 2006
Ultima resposta 28 de dez. de 2006
Respostas 10
Participantes 3