Introdução ao framework Mentawai

Esse artigo apresenta o Mentawai, um framework Move View Control (MVC) que foi criado por brasileiros. O Mentawai não usa arquivos Extensible Markup Language (xml) para configurações e mapeamento, o que o torna mais simples. Introduz-se ao leitor alguns aspectos deste framework, para isto utiliza-se de um exemplo simples e ilustrativo de algumas facilidades que o Mentawai fornece.

[ Hits: 19.778 ]

Por: Rogério Tomassoni em 31/08/2009


Utilização do Mentawai



Para começar, considera-se que o leitor já possua uma ferramenta de IDE (Eclipse, Netbeans) de sua preferência já instalada e em funcionamento, além de um contêiner como Tomcat.

No exemplo abordado neste artigo, a ferramenta utilizada foi Netbeans IDE 5.5, disponível em: http://netbeans.org

O site oficial do Mentawai disponibiliza um plugin no formato .nbm para utilização do mesmo nesta ferramenta. A instalação do plugin pode ser encontrada dentro do arquivo compactado.

Para utilizar o Mentawai deve-se seguir os seguintes passos:
  1. Baixar o arquivo correspondente à versão atual do Mentawai, que no momento de escrita deste é a 1.9 e está disponível em: http://www.mentaframework.org/mentawai-1.9.zip
  2. Descompactar o arquivo em qualquer diretório vazio e instalá-lo.

Criação da primeira aplicação web

No Netbeans, com o plugin instalado, criar uma aplicação, seguindo os passos:

File > New Project > Web > Mentawai Web Project > Next

Nesse ponto o projeto será criado com a estrutura básica de aplicações web, inclusive com o servlet já mapeado no arquivo \WEB_IN\web.xml, ao qual é responsável por responder as requisições que contenham o prefixo .mtw. Esse é o padrão do Mentawai, mas nada impede de alterar para qualquer outro. E também o binário do Mentawai (mentawai.jar) já estará adicionado, o que em outra IDE se faz necessário adicionar manualmente no diretório \WEB_INF\lib. A figura 1 mostra um exemplo de um arquivo xml.

Neste ponto o projeto já está pronto para utilizar o Mentawai e suas facilidades. Execute o projeto e veja o resultado do exemplo que acompanha o plugin. Um novo exemplo um pouco mais elaborado deve ser criado, onde o usuário entra com uma data e o código da semana e o dia do ano será calculado e retornado. Este exemplo utiliza validação e internacionalização, passo a passo, com propósito didático.

Para começar esse novo exemplo, os arquivos .jsp do diretórios Web Pages e todo conteúdo do diretório Source Packages devem ser apagados e o projeto deve ser renomeado para Exemplo_artigo, ou deve-se criar um novo projeto Web com esse mesmo nome.
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI

Mentawai: Actions

Uma action pode ser entendida como um recurso que recebe os dados das requisições do cliente e possibilita a visualização do resultado da execução da solicitação. Há duas maneiras de implementar as actions. Estender a classe da org.mentawai.core.BaseAction, que já implementa os métodos abstratos ficando apenas o método execute para programador implementar, ou utilizar a interface org.mentawai.core.Action, ao qual o programador terá que implementar todos os métodos.

No exemplo, a primeira alternativa será abordada. Dando continuidade no exemplo, deve-se criar uma nova classe no pacote padrão, em Source Package (File > New JavaClass - Em class name, coloque o nome CalculaCodigoDaSemanaDiaDoAno e estenda de org.mentawai.core.BaseAction). O método execute recebe a data digitada pelo Input e retorna pelo Output. O retorno SUCCESS ou ERROR será a consequência a ser tratada pela ApplicationManager.java.

A figura 2 mostra a classe CalculaCodigoDaSemanaDiaDoAno.java.
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI

Mentawai: Validação

Para implementar a validação deve-se criar uma classe para que o usuário digite a data sem caracteres especiais, ou seja, a data terá que ser informada no formato: dia mês ano.

O Mentawai permite criar de duas maneiras usando a ValidationFilter onde validação é feita através de um filtro de validação que herda de org.mentawai.filter.ValidationFilter. Dessa maneira a validação é totalmente desacoplada da sua action e pode ser inclusive aplicada a mais de uma action diferente ou utilizando a ValidatorFilter: A validação é codificada diretamente na action que implementa a interface Validatable. Dessa maneira não é necessário criar um novo filtro de validação e a lógica de validação fica dentro da action a qual ela se aplica. A validação continuará sendo feita por um filtro, mas nesse caso por um filtro global de validação que é o org.mentawai.filter.ValidatorFilter. Utilizaremos a primeira em nosso exemplo ValidationFilter. Continuando, criar uma classe no mesmo local onde foi criada a primeira com o nome ValidaData e estenda-a de ValidationFilter.
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI
Esse filtro pode ser aplicado a qualquer action antes ser executada. A primeira regra diz que o campo requerido não pode estar em branco, a segunda que não poderá conter os caracteres especiais e as strings CAMPO_REQUIRIDO_ERRO e INVALID_CARACTER_ESPEC recebem a chave referente à mensagem que será exibida ao usuário caso as regras sejam violadas. Note que pode ser identificada como string ou um inteiro.

Mentawai: Mensagens de validação

As mensagens deverão estar dentro de um arquivo em \Web Pages\validation que deverá possuir o nome com o formato Nome_Da_Classe_loc_i18n, onde o nome da classe e o próprio nome da classe de validação, loc é a localização, i18n é a extensão padrão do Mentawai, logo ficará assim: ValidaData_pt_BR.i18n para a português do Brasil e ValidaData_en_US.i18n para o inglês.

Continuando com o exemplo, crie um folder dentro de Web Pages chamado validation e crie os arquivos com a extensão .i18n, com os nomes especificados. A figura a seguir mostra a estrutura do projeto nesse momento.
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI
Veja a seguir o arquivo ValidaData_pt_BR.i18n:
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI
O arquivo em inglês contém o mesmo texto, porém na língua inglesa.

Mentawai: Mapeamento de actions

As actions deverão ser mapeadas em uma classe especial chamada ApplicatioManager.java, que herda de org.mentawai.core.ApplicationManager. Por padrão essa classe fica dentro do diretório SourcePackages da aplicação, porém nada impede de alterar.

Para mapear a action CalculaCodigoDaSemanaDiaDoAno vamos criar a classe que gerencia as actions da aplicação, seguindo os passos: File > New JavaClass em class name coloque o nome ApplicationManager e estenda de org.mentawai.core.ApplicationManager.

Nas aplicações web, o método loadActions é chamado pelo controller quando é iniciado. O controller localiza as actions pelo nome dado a ela, action ("/Nome_da_Action", Classe_Responsavel.class). Instanciaremos então as actions e suas consequências, que por padrão são forward ou redirect.
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI

Mentawai: Classes de negócio

Agora vamos criar a classe que fará uso da java.util.Calendar para retornar o código que representa a semana digitada e o dia referente no ano. Criar a classe CodSemanaAno.java em Source Package, no pacote default.
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI

Mentawai: Classes de apresentação

Em nosso exemplo utilizaremos a Java Server Page (jsp), que será a camada apresentada ao usuário, aplicando a internacionalização. As páginas devem ficar dentro de \Web Pages. Faremos três páginas, a index.jsp, que conterá apenas um redirecionamento a outra página, denominada Entrada.jsp. Esta será responsável por coletar a data do usuário fazendo as validações que criamos, até que uma data no formato desejado seja inserida. Nesse ponto o cálculo é feito e o resultado é direcionado para outra página denominada Saida.jsp, que exibirá o resultado.

Lembrando que devemos adicionar no topo de todas nossas páginas referências (uri) do arquivo binário do Mentawai e o prefixo que o identificará (prefix). A referência ao mentawai é a seguinte: <%@ taglib uri="/WEB-INF/lib/mentawai.jar" prefix="mtw" %>.

As figuras a seguir demonstram os arquivos index.jsp, entrada.jsp e saida.jsp.
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI
E para fazer a internacionalização nos textos estáticos utilizaremos a tag <mtw:i18n key="valor">, onde key é a chave, e valor é o conteúdo a ser exibido. O arquivo com mesmo nome da jsp deve ficar dentro de \Web Page\i18n com formato Nome_Da_jsp_loc_.i18n. É necessário também colocar no topo das páginas que usam internacionalização:

<mtw:useI18N />
Linux: INTRODUÇÃO AO FRAMEWORK MENTAWAI
Para fazer a internacionalização ao nosso exemplo convidamos o leitor a criar os arquivos, por exemplo, o Entrada_en_US.i18n, trocar a linguagem do seu browser e verificar o resultado.

Usamos também a tag <mtw:hasError><mtw:error field="dataDigitada"/></mtw:hasError> que responsável por exibir as mensagens de erro, o parâmetro field espera como argumento um campo que será o validado, no nosso caso foi o campo de entrada especificado pela outra tag <mtw:input type="text" name="dataDigitada" maxlength="8"/>, que é um campo do tipo texto, tem o nome de dataDigitada e pode ter no máximo 8 dígitos. Portanto, ao pressionar o botão enviar, declarado com <input type="submit" value="<mtw:i18n key="entrada.mensagem.botao"/>" /> a action a ser invocada será a definida em <form action="Calculo.mtw" method="post"> e a resposta será definida pelo resultado da action. Se for sucesso, redirecionará para a página Saida.jsp, caso contrário continua na página entrada.jsp. A partir daqui o exemplo deverá estar funcionado.

Sem dúvida os criadores do Mentawai conseguiram atingir seus objetivos, de criar um framework MVC simples e que não deixa a desejar se comparado aos concorrentes. O uso de um framework agiliza muito o trabalho dos desenvolvedores.

Neste artigo foi abordado apenas uma pequena parcela do poder que o Mentawai possui, logo aconselha-se aos leitores interessados em aprofundar os conhecimentos a visitar o site oficial, baixar sua API e praticar.

Referências bibliográficas

SUN Microsystems, NetBeans IDE 5.5
Acesso em: Junho. 2006

Site oficial do mentawai
Acesso: 25 ago 2007

GUIMARAES, José de Oliveira. Frameworks. São Paulo.(2000)
Disponível em: dc.ufscar.br - apostilas-patterns.zip

Página anterior    

Páginas do artigo
   1. Introdução
   2. Utilização do Mentawai
Outros artigos deste autor

Uma abordagem ao eGroupware como solução para agendamento

Linux + Samba como PDC

Squid e firewall em 5 minutos

Openfire + Gateway + MSN

Leitura recomendada

Terasology: O Minecraft gratuito e com gráfico realista

Gerando arquivos PDF com Java e iText

Portugol Online - Software livre para facilitar o estudo de algoritmos

HrStatus - agilizando a virada do horário de verão

Construindo uma aplicação JDialog

  
Comentários
[1] Comentário enviado por foguinho.peruca em 01/09/2009 - 10:19h

Olá!

O mentawai assim como outros frameworks são muito importantes no desenvolvimento pois facilitam muito a nossa vida. Já imaginou ser obrigado a trabalhar com servlets ou no melhor caso apenas com jsp?
Além dele eu recomendaria uma olhada com atenção no vraptor (vraptor.org) e no hibernate (hibernate.org) além de algumas bibliotecas de javascript como YUI, jquery, GWT entre outros.

Um detalhe na introdução:
"Esse artigo apresenta o Mentawai, um framework Move View Control (MVC) que foi criado por brasileiros."
MVC significa "Model View Control" e não "MoVE View Control". Essa idéia foi emprestada do Smalltalk se não me engano.

Jeff

[2] Comentário enviado por tomassoni em 01/09/2009 - 10:32h

foguinho.peruca, relamente os frameworks são feitos para facilitar a vida. Um muito legal que tenho visto e bem apresentavel e o Adobe Flex http://www.adobe.com/products/flex/.
Quanto ao MVC, relamente é Model View Control, foi uma falha. Obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts