[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

Filters para inner actions  XML
Forum Index -> Comentários Gerais
Author Message
mikeribera



Joined: 03/08/2005 11:23:41
Messages: 9
Offline

Criei uma classe Noticia onde encapsulei todos os métodos de inclusão, edicao, listagem e exclusão. O problema é que na hora de criar as inner actions nao consigo adicionar um filter para cada inner action específica... não há uma assinatura simples como para as consequences.... segue exemplo do meu código abaixo:

Codigo sem o filtro de validacao:
ActionConfig acNoticia = new ActionConfig("/Noticia", Noticia.class);
acNoticia.addConsequence(Noticia.SUCCESS, new Forward("/noticia.jsp"));
acNoticia.addConsequence(Noticia.ERROR, new Forward("/error.jsp"));
acNoticia.addConsequence(Noticia.SUCCESS, "add", new Forward("/noticia_add.jsp"));
acNoticia.addConsequence(Noticia.SUCCESS, "addProcess", new Chain(acNoticia));
acNoticia.addFilter(new ConnectionFilter(connHandler));
addActionConfig(acNoticia);


Este codigo funciona perfeitamente, mas não há validação... segue o código ondei tentei inserir a validação:

ActionConfig acNoticia = new ActionConfig("/Noticia", Noticia.class);
acNoticia.addConsequence(Noticia.SUCCESS, new Forward("/noticia.jsp"));
acNoticia.addConsequence(Noticia.ERROR, new Forward("/error.jsp"));
acNoticia.addConsequence(Noticia.SUCCESS, "add", new Forward("/noticia_add.jsp"));
acNoticia.addConsequence(Noticia.SUCCESS, "addProcess", new Chain(acNoticia));
acNoticia.addFilter(new NoticiaValidator());
acNoticia.addFilter(new ConnectionFilter(connHandler));
addActionConfig(acNoticia);

Dá um erro pois não consigo especificar que este filtro se aplica à inner action "addProcess"... Onde terei errado? Obrigado por qualquer ajuda!
saoj



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

Se vc quer adicionar um filtro apenas para uma InnerAction, vc precisa de uma InnerActionConfig.

Assim:

ActionConfig ac = new ActionConfig("/Noticia", Noticia.class, "addProcess");
ac.addConsequence(Noticia.SUCCESS, new Chain(acNoticia));
ac.addConsequence(Noticia.ERROR, new Forward("/error.jsp"));
ac.addFilter(new NoticiaValidator());
ac.addFilter(new ConnectionFilter(connHandler));
addActionConfig(ac);

Ou seja, uma actionconfig para cada InnerAction.

Futuramente estudaremos se é vantajoso adicionar um filtro especificamente para aquela InnerAction, assim:

ac.addFilter(new NoticiaValidator(), "addProcess");


Sergio Oliveira

mikeribera



Joined: 03/08/2005 11:23:41
Messages: 9
Offline

obrigado, funcionou perfeitamente.
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team