Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2005 10:45:50
|
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!
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2005 12:15:36
|
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
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2005 14:26:17
|
mikeribera
Joined: 03/08/2005 11:23:41
Messages: 9
Offline
|
obrigado, funcionou perfeitamente.
|
|
 |
|
|
|