[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Inner action [RESOLVIDO]  XML
Forum Index -> Comentários Gerais
Author Message
pgoncalves


[Avatar]

Joined: 14/09/2006 13:29:19
Messages: 332
Offline

Bom dia galera.. estou com um probleminha idiota.. é o seguinte:

Criei uma action genérica para crud... por ex GenericCrud..

todas as minhas actions do menta que quero que use crud extende essa classe....

agora o problema..

quando faço isso o método execute() aparece e executa..
porém quando uso inner action por ex: Hellomenta.criar.mtw ele diz que a inner action nao existe.. mesmo tendo o método criar() e ele registrado no app manager..

e o engraçado é que essa mesma action eu coloco ela no hellomenta, que extende o genericCrud, sem mudar a configuração das classes ela funciona. ele apenas nao localiza os métodos que estão dentro do genericcrud, apenas o execute que funciona..

Alguém ai sabe o motivo??
eu ja cheguei até a montar um multiaction controller que controla por variaveis e envocam métodos, por ex Hellomenta.mtw?acao=criar
significa que existe um método que chama criar. mais eu nao estava querendo fazer isso, porque ja existe as inneractions que possui a mesma finalidade!!!

se alguém puder me ajudar seria bacana!!

Obrigado..

Pedro

Pedro Gonçalves
www.izap.com.br
Glaucio


[Avatar]

Joined: 20/07/2005 08:22:57
Messages: 52
Offline

Olá pgoncalves,

Você poderia postar seu AppManager? Como está a action do seu form html?

Um abraço!

Glaucio Guerra

Glaucio Guerra
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Erro no AppManager. Posta o AppManager.

Sergio Oliveira

pgoncalves


[Avatar]

Joined: 14/09/2006 13:29:19
Messages: 332
Offline

Não é erro no appmanager nao!!!

eu ja fiz esse teste, tipo, eu faço o seguinte, pego esse método e por na action, logo quando ponho esse mesmo método na classe que é extendida, dá pau!!!

mais está assim:

action("/teste/Hellomenta", Hellomenta.class)

.on("listagem", newForward("/jsp/crud/HelomentaListagem.template"))
.on("criar","criar", new Forward("/jsp/crud/HelomentaEntrada.template"))
.on("editar","editar", new Forward("/jsp/crud/HelomentaEntrada.template"))
.on("salvar","salvar", new Redirect("/teste/Helomenta.mtw"))

E essa configuração esta na action...

[]'s

Pedro Gonçalves
www.izap.com.br
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Isso está errado.

Deve ser algo assim:

on(SUCCESS, "criar", new Forward(..));

Dá uma olhada na documentacao de inner actions.

Sergio Oliveira

pgoncalves


[Avatar]

Joined: 14/09/2006 13:29:19
Messages: 332
Offline

Mais o sérgio, me explica porque se coloco em uma menta action ele não dá pau??

e quando coloco na classe que vou extender dá!

e está correto olhe
Code:
  ac.addConsequence(HelloMentawai.SUCCESS, "sayBye", new Forward("/bye2.jsp"));
 


Eu também cheguei a fazer esse aqui também

ac = new ActionConfig("/HelloInnerAction3", HelloInnerActions.class, "sayBye"); 


Porém o erro continuou o mesmo

Pedro Gonçalves
www.izap.com.br
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline


Não estou conseguindo ver.

Alguma coisa deve estar errada na sua aplicaçao. No framework com certeza não é...

Dá uma debugada aí e posta aqui depois qual era o problema.

Sergio Oliveira

pgoncalves


[Avatar]

Joined: 14/09/2006 13:29:19
Messages: 332
Offline

O problema é: A inner action está registrada porém nao encontrada dentro da action, mais esse método está na classe que foi extendida pela action!!!

faz o teste ai, o execute, ele encontra agora as inner actions não!!

Pedro Gonçalves
www.izap.com.br
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Não acredito que o erro seja do framework.

Baixa o HelloInnerActions.war exemplo e veja que está tudo funcionando.


Sergio Oliveira

pgoncalves


[Avatar]

Joined: 14/09/2006 13:29:19
Messages: 332
Offline

Olha so o exemplo:

public HelloMenta extends baseaction {
public string execute(){return "teste";}
public string inner(){return "teste";}
}

assim ele encontra o método inner quando registro ela como inner action

public Generic extends baseaction {
public string execute(){return "teste";}
public string inner(){return "teste";}
}

public HelloMenta extends Generic{}

teoricamente o Hellomenta tinha que aceitar tanto o execute quanto o inner...

porém quando essa action é executada, somente o execute encontra, quando solicita a inner action ele fala que nao encontra..


entendeu agora?

Tenho certeza que nao é cagada minha...

Testa ai quando você tiver campo...

Té!

Pedro Gonçalves
www.izap.com.br
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline


Putz !!! Entendi agora !!! Vc está usando herança !!!

Realmente o framework não estava suportando isso, me desculpe.

Acabei de modificá-lo para suportar isso.

Pega o jar beta e faz o teste aí.

É uma simples mudança de getDeclaredMethod para getMethod.


Sergio Oliveira

pgoncalves


[Avatar]

Joined: 14/09/2006 13:29:19
Messages: 332
Offline

Eu fiz um action controller pra resolver esse problema.. mais ai se ja existe o inner action pra que montar o esse controller né???

OU.. mais muito obrigado sérgio!!
quebrou um galho agora!

Assim que o crud estiver ok vou publicar aqui blz??

[]'s

Pedro Gonçalves
www.izap.com.br
afsrj


[Avatar]
Joined: 16/11/2006 19:28:15
Messages: 469
Location: Rio de Janeiro
Offline

Obba...mais um crud para galera???


Alexandre Ferreira
Blog: http://alexandreferreira.com.br
[Email] [WWW] [MSN]
pgoncalves


[Avatar]

Joined: 14/09/2006 13:29:19
Messages: 332
Offline

Sim sim.. o meu tem 5 linhas ehehehe

Pedro Gonçalves
www.izap.com.br
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team