Mentawai – Um framework brasileiro.

Por que usar Mentawai?
Pessoal, resolvi escrever sobre esse framework a princípio por tê-lo usado no meu projeto final de curso da Faculdade de Administração e Informática de Santa Rita do Sapucaí, Mg, a FAI.
Indicado e apresentado pelo professor Júlio Rezende, resolvemos então utilizar algo que nos ajudasse a desenvolver melhor e mais rápido o projeto.
Quando já se tem o projeto a ser desenvolvido, precisamos então das ferramentas e se nos deparamos com esses tipos de necessidades acima: rapidez, facilidade de entendimento, produtividade, melhor entrosamento do grupo de desenvolvedores, reuso de código, não ter que implementar tudo do zero, estamos falando de Framework.
A ferramenta escolhida foi o framework Mentawai, desenvolvida por brasileiros, utilizado por diversas empresas e pessoas no Brasil e do exterior, possui um fórum com respostas rápidas dos próprios criadores, contrubuidores ativos e de usuários desenvolvedores.
“O Mentawai foi o primeiro framework web MVC em Java a adotar, implementar, documentar e incentivar todo e qualquer tipo de configuração (actions, filtros, validação, listas, connection pooling, ioc, di, etc.) única e exclusivamente através de configuração programática(100% Java),abolindo por completo o uso de XML e Annotations para as configurações.”
Criando um projeto java web no netbeans(meu caso), vamos utilizar o arquivo web.xml para iniciarmos nossa configuração:

Para ampliar clique na imagem, para voltar aperte ESC.
Considerações:
Servlet Name: “Controller” – é o nome da servlet que controlará todas as requisições do sistema e disparará actions para executar as diversas funcionalidades do sistema.
Servlet Class: “org.mentawai.core.Controller” – é o core do Mentawai.
Jsp File: “*.do” – Extensão que diz pra onde vai ser enviada a requisição. Ex: Se em uma jsp vc fizer: action.do, o mentawai procurará no Controller uma action com o nome “action.do”. (Colocarei abaixo um exemplo real de utilização)
Parameter Name: “applicationManager”
Parameter value: “buriti.controller.FrontController” – nome da classe que fará o controle.
Um breve resumo:
Depois de configurado o web.xml, seu projeto deve ter a estrutura MVC e deste modo podemos verificar facilmente de que forma vamos trabalhar daqui pra frente:
MVC
O controle – action:
Inclua a lib do mentawai ao projeto: (mentawai.jar) ou versão mais recente.
http://www.mentaframework.org/mentawai-1.15.zip (Completo)
http://www.mentaframework.org/mentawai.jar (Estável)
Para dar uma idéia simples de como funciona, imaginem que a cada requisição do usuário, o sistema fará o seguinte processo:

Analisando pela classe FrontController.java:

A View – JSP:
Se queres chamar outra jsp diretamente:
<a href=”<mtw:contextPath/>/paginas/arvore/ArvoreRead.jsp”>Cadastro de arvores</a>
Se queres chamar a action “ArvoreShowFormAction.class”, conforme a classe FrontController acima, basta usar:
<a href=”<mtw:contextPath/>/Arvore/ArvoreShowFormAction.do”>Cadastrar árvores</a>
Bom, de uma forma beem resumida quero mostrar que primeiro pensamos o que a action vai fazer, depois descrevemos ela no FrontController e este fica esperando a resposta da action: Se ela retornar a String SUCCESS, então faça isso. Se o retorno for ERROR, então faça aquilo.
Um exemplo de action:
Reparem apenas na String consequence, se a action conseguiu acessar o banco de dados, trazer a lista de árvores, então vai retornar SUCCESS para o FrontController e ele exibirá a tela Arvore.jsp, senão, se der algum erro, retornará ERROR e então o FrontController mandará exibir a tela de Erro.jsp

Uma das melhores coisas que o mentawai faz é a validação de campos utilizando o validatable, onde podemos utilizar as máscaras de validações prontas ou criar customizadas. Por exemplo:
public void initValidator(Validator val, String arg1) {
val.add("usuario", new RequiredFieldRule(), "Este campo é obrigatório!");
val.add("senha", new RequiredFieldRule(), "Este campo é obrigatório!");
val.add("senha", new StringRule(6, 10), "Mínimo de 6 e Máximo de 10 caracteres!");
}
Mais exemplos: http://www.mentaframework.org/validation.jsp e http://heliofrota.wordpress.com/2010/03/23/mentawai-rules/
Não vou dizer aqui tudo que dá pra fazer com o mentawai, até porque não o conheço tão bem assim, acabamos de criar o primeiro projeto utilizando-o, talvez será implantado na prefeitura da cidade e que está descrito neste mesmo site em http://www.jardelmorais.com/?page_id=68 , Buriti – Cidade Verde.
Algumas discussões interessantes:
Mentawai x Vraptor (Sergio Oliveira Jr “saoj” – é um dos criadores do Mentawai) - “O Mentawai foi um dos primeiros frameworks Java a abolir por completo o XML pra tudo. Foi provavelmente o primeiro framework Java a pregar o uso ostensivo de configuraçao programática em código Java.
O único XML que o Mentawai necessita é a configuração do controlador, coisa que todos os outros também necessitam por ser uma exigência da API de servlets, ou seja, impossível fugir disso. Além do mais isso são poucas linhas que vc configura uma única vez e nunca mais mexe. Saoj”
Acesse a discussão em: http://www.guj.com.br/posts/list/15/45291.java
Qual framework você usa? “Mentawai, framework que é um dos outros que gosto muito, muito produtivo, configuração via codigo java, com isso programando no Eclipse da vida você configura como programa java, digita parte incial do que quer, Ctrl + espaço( auto complete )
, rápido, agil, com ótimas características e funcionalidades prontas para uso em conjunto do framework [ Framework Brasileiro ] ErkoPJ – usuário do site www.guj.com.br ”
Acesse a discussão em:http://www.guj.com.br/posts/list/190345.java
Fica aqui um pouco do que aprendi, agora conto com a participação de vocês para agregarem valor ao tutorial e continuar aprendendo.
Projetos utilizando mentawai como exemplo são encontrados no site oficial, em http://www.mentaframework.org/mentawai-examples-1.15.zip
Caso necessitem de um projeto exemplo, entre em contato.

Jardel Morais