====== ModuleManager ======
* Recurso da camada de **CONTROLE**
* Classe que configura a inicialização do Controlador referente ao Módulo;
* Seu conteúdo é varrido e carregado no Servlet Controller em tempo de deploy;
* Mapeia as classes das Actions e gerencia o fluxo das actions dentro do sistema;
* Registra filtros (Filters);
* Gerencia o fluxo (Consequences) das ações (Actions);
* Configura os formatadores.
Assinatura da classe:
package modules.admin;
import org.futurepages.core.control.AbstractModuleManager;
public class ModuleManager extends AbstractModuleManager {
//Métodos de configuração de actions, filters, formatters, etc...
}
===== Inicialização (init) =====
* Sobrescreva o método init(Context application) para executar algo em tempo de deploy.
* Exemplo do método a seguir:
@Override
public void init(Context application) {
//armazenando o horário que foi feito o deploy em uma variável de aplicação
application.setAttribute("dataHoraDeploy",new Date());
}
===== Ações/Filtros (loadActions) =====
* Sobrescreva o método para configurar as ações e filtros do módulo.
* Exemplo do código a seguir:
@Override
public void loadActions() {
//filtro global de autenticação
filter(new AuthenticationFilter());
//filtro global de permissão de filtros
filter(new ModulePermissionFilter());
//consequências globais
on(ACCESS_DENIED, fwIn("accessDenied.page"));
on(AJAX_DENIED, fwIn("ajaxDenied.jsp"));
//Action, seus filtros e consequências
action("Action", Action.class)
.filter(new VOFilter("bean",Bean.class))
.on(SUCCESS, fwIn("Action.page"))
.on(ERROR, fwIn("Action.page"))
;
}
===== Formatadores (loadFormatters) =====
* Formatadores são utilizados na visão para formatar a saída.
* Um formatador de CPF de um usuário, por exemplo seria utilizado da seguinte maneira na visão:
* ****
* A configuração destes formatadores é feita no método presente no ModuleManager. Veja a seguir:
* Veja mais sobre formatadores em [[futurepages2:formatters|Formatters]]
@Override
public void loadFormatters() {
FormatterManager.addFormatter("cpf" , new CPFFormatter());
FormatterManager.addFormatter("cnpj" , new CNPJFormatter());
}