Jump to content


Photo

Dispatchaction E Httpservletrequest


  • Faça o login para participar
1 reply to this topic

#1 gutostraube

gutostraube

    Normal

  • Usuários
  • 71 posts
  • Sexo:Não informado

Posted 26/12/2006, 09:34

Olá!

Existe uma forma de verificar se um método existe em uma classe?

O que acontece é o seguinte:
Estou usando DispatchAction do Struts e acontece algumas vezes do parameter continuar no request quando o forward de um action é outro action. E, ao invés de chamar o método unspecified, chama o método que tem o nome do parameter que foi para o action anterior. Mais ou menos assim:

Se eu tenho a URL: actionUm.do?perform=editar, o DispatchAction chama o método:
ActionUm.editar()
Mas eu tenho o seguinte forward no meu struts-config.xml:
<forward name="dois" path="/actionDois.do"/>
Redireciono para esse action, mas o parâmetro "perform" continua no request, mas como no ActionDois não existe um método editar(), cai em uma Exception.

Como eu tenho um DefaultAction do qual todos os meus actions extendem, então poderia colocar uma verificação no método execute dele: se o método que veio no request existe, então eu chamo, senão, chamo o unspecified()...

Além de um forward simples, já tentei usar ActionRedirect, mas o problema continua. Não me orgulho de mostrar a última solução, mas fiz o seguinte no meu struts-config.xml:
"/index.do?perform=unspecified"
Em um caso específico funcionou, mas creio que logo isso não vai mais resolver o problema... :(

Pensei tb em remover o parâmetro do request, até tentei colocar no reset() do ActionForm, mas não resolveu.

Se existir alguma solução, agradeço! ;)

Muito obrigado...

Edição feita por: gutostraube, 26/12/2006, 09:37.

Gustavo Straube
Analista de Sistemas

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 27/12/2006, 12:51

se o método que veio no request existe, então eu chamo, senão, chamo o unspecified().

Você fazendo um tratamento com "try...catch" nesta questão não resolve seu problema não?

Flws...
:ponder:Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq