Tabela de conteúdos

Actions Futurepages

Action é a classe que representa um caso de uso. Recebe as entradas enviadas pelo usuário (input), realiza um processo ao um fim retorna um resultado (output) para a consequência retornada.

Padronização

Ações Simples

Estas são as ações que representam casos de uso simples (NÃO-CRUDs). LoginAction, ProtectedAction e FreeAction. Recomenda-se que para estas actions sejam usados um a dois métodos públicos, dependendo do caso.

 
public class SelecionaTurma extends FreeAction {
 
    /** O método execute() como mostrado a seguir já existe na hierarquia das Actions do Futurepages,
      * sendo desnecessário, já que sobrescreve o método execute() da classe FreeAction com a mesma implementação.
      * Nesse caso bastaria somente sobrescrever o método listDependencies()
      */
    public String execute() {
        listDependencies();//joga na saída as dependências de tela, neste caso a lista de todas as turmas.
        return SUCCESS;
    }
 
    @Override
    private void listDependencies() {
        output.setValue("turmas", Dao.list(Turma.class, null, null));
    }
 
    //Submete a principal funcionalidade da Action.
    public String submit(int turmaId) {
        TurmaServices.selecionaTurma(Dao.get(Turma.class, turmaId));
        return SUCCESS;
    }
}
   <a href="Logout.fpg">Realizar Logout</a>
 
   <a href="SelecionaTurma.fpg">Selecionar Turma</a>
 
   <form action="SelecionaTurma.submit.fpg">
     ...
   </form>
    action("AlteraSenha",AlteraSenha.class);
    action(DistribuiProcesso.class); //opção que pega o nome por reflexão
 

Ações CRUD (CrudActions)

    action("Aluno",AlunoActions.class); //Action de Crud do bean Aluno
         .filter(new VOFilter("aluno", Aluno.class))
            .on(UPDATE, fwIn("Aluno.update.page"))
                .on(SUCCESS, UPDATE, fwIn("Aluno.update.page"))
                .on(ERROR,   UPDATE, fwIn("Aluno.update.page"))
         ;
 
    <form action="Aluno.update.fpg">
      ...
    </form>
 

AjaxAction

em breve...

DynAction

em breve...