Obrigado, eu não preciso de uma cópia do Struts. LOL

[quote]Quick Start

* Clique aqui para baixar o mais recente binário do Mentawai.


* Descompacte o conteúdo desse arquivo zip dentro de um diretório vazio.


* Pegue o arquivo mentawai.jar e coloque-o dentro do diretório /WEB-INF/lib de sua aplicação web.Você pode criar esse diretório se ele não existir.


* Altere o arquivo web.xml de sua aplicação web para gerenciar as actions do mentawai: (inclua as linhas abaixo)

  <!-- The Mentawai controller -->
  <servlet>
  	<servlet-name>Controller</servlet-name>
  	<servlet-class>org.mentawai.core.Controller</servlet-class>
  	<load-on-startup>1</load-on-startup>		
  </servlet>

  <!-- You must choose an extension to indicate a mentawai action -->
  <servlet-mapping>
  	<servlet-name>Controller</servlet-name>
  	<url-pattern>*.mtw</url-pattern>
  </servlet-mapping>
  	


* Tudo o que estamos fazendo é mapear as requisições que terminam com *.mtw para o controller (gerenciador) do Mentawai.


* É isso. Você já está pronto para usar o framework Mentawai !

O ciclo de vida da action

O ciclo de vida da action é:

* O controller recebe a requisição (javax.servlet.http.HttpServletRequest).

* O controller procura pela action correspondente.

* O controller prepara o Input, Output, Contexts (Session, Application, Cookies, etc.) e injeta na action.

* O controller executa a action junto com seus possíveis filtros.

* O retorno da action é um resultado (java.lang.String), normalmente SUCCESS ou ERROR.

* Para cada resultado existe uma consequência (org.mentawai.core.Consequence), normalmente um FORWARD ou REDIRECT.

* O controller executa a consequência.

Isso é só pra você entender o que acontece internamente, mas você não precisa se preocupar com isso. Tudo o que precisa fazer é escrever suas actions e seus filtros.
Meu primeiro projeto: Hello World
Se você quiser fazer o deploy dessa aplicação web simples no seu container web , clique aqui para fazer o download do HelloMentawai.war. Para fazer o deploy de um arquivo war, tudo que você precisa é copia-lo pra dentro do diretório webapps . (Nota: algums browsers, como o meu, mudam a extensão para .zip quando você tenta salvar o arquivo. Renomeie o arquivo para .war se necessário.)

package examples.helloworld;

import java.util.*;

import org.mentawai.core.*;

public class HelloMentawai extends BaseAction {

public String execute() throws Exception {
	String username = input.getStringValue("username");
	if (username == null || username.trim().equals("")) {
		return ERROR;
	}
	output.setValue("username", username.toUpperCase());
	return SUCCESS;
}

}

Quando você estende org.mentawai.core.BaseAction, a sua classe tem acesso a alguns dados úteis de membros protected. Na action HelloMentawai nós estamos usando dois deles:

* input: O input (org.mentawai.core.Input) que possui os headers e os valores dos parâmetros da requisição http. Os parâmetros podem ser qualquer objeto Java, e não somente Strings.


* output: O output (org.mentawai.core.Output) com o resultado da execução da action. Por exemplo, sua action pode buscar no banco de dados uma lista de usuários e colocá-la no output da action. Depois, se a consequência da action for FORWARD, você pode acessar o output da action na camada view.

Nessa simples action, nós vamos voltar a versão do username em maiúsculas. O resultado é SUCCESS se o parâmetro estiver presente ou ERROR se o usuário não digitar nada no campo do formulário.

Uma action deve possuir um nome (ou endereço) através do qual ela será chamada pelo browser. Ela deve tb definir conseqüências para os resultados que ela gerar. Ao invés de um arquivo de XML pentelho, o Mentawai faz toda a configuração através de código Java, dentro do arquivo ApplicationManager.java.

// no package (root package)

import org.mentawai.core.*;

public class ApplicationManager extends org.mentawai.core.ApplicationManager {

public void loadActions() {
    
    // Ruby style: less verbose and less clear
    
    action("/HelloWorld", HelloMentawai.class)
        
        .on(SUCCESS, fwd("/hello.jsp"))
        .on(ERROR, fwd("/username.jsp"));
        
    // Java style: more verbose and more clear
    
    ActionConfig ac = new ActionConfig("/HelloWorld", HelloMentawai.class);
    ac.addConsequence(SUCCESS, new Forward("/hello.jsp"));
    ac.addConsequence(ERROR, new Forward("/username.jsp"));
    addActionConfig(ac); // add this action to the application manager
        
}

}

O nome da action define como você pode chamar a action do browser ou da página HTML. Por exemplo, a action acima pode ser chamada através do link http://www.suaaplicacao.com/HelloWorld.mtw ou, se você utilizando um contexto de aplicação diferente de ROOT, http://www.suaaplicacao.com/SEU_CONTEXTO/HelloWorld.mtw.

Nossa action /HelloWorld usará a classe HelloMentawai e sua implementação.

A consequência do resultado SUCCESS é um forward para /hello.jsp. A consequência do resultado ERROR é um forward para /username.jsp.

Você deve colocar a classe acima (ApplicationManager.class) no diretório /WEB-INF/classes de sua aplicação web. Note que isso faz sentido pois não definimos nenhum pacote para essa classe. Por default o Mentawai procura por essa classe no package root quando o container inicia, mas você pode especificar um outro nome e/ou pacote para essa classe com as seguintes linhas no seu arquivo web.xml:

Controller org.mentawai.core.Controller applicationManager examples.helloworld.ApplicationManager 1 Controller *.mtw

Estamos especificando que a classe ApplicationManager é examples.helloworld.ApplicationManager, sobrescrevendo o default do Mentawai que é procurar no root.

O conteúdo do arquivo username.jsp está abaixo.É somente um formulário HTML que faz o submit do username para a action HelloMentawai.

Hello Metawai!

Type your username:

O conteúdo do arquivo hello.jsp está abaixo. Note o uso da tag Mentawai para exibir o output.

<%@ taglib uri="/WEB-INF/lib/mentawai.jar" prefix=“mtw” %>

Hello from Mentawai!

<%--

Hello from Mentawai!

Hello ${username} from Mentawai!

Hello $username from Mentawai!

--%>

Como a consequência do success é FORWARD, todas as informações da action estão disponíveis na camada view e podemos usar a tag mtw:out para exibir o valor do output da action. Essa tag funciona bem parecido com a EL (Expression Language) do JSP , procurando por valores nos escopos: page, output (requisição), session e application. Você pode também usar o operador ponto (.) para acessar propriedades como user.name.firstName. [/quote]

Enfim qual a novidade disto? Só pra dizer que existe um framework brasileiro? :roll: Inovação, é isto o que fez do Struts, Hibernate e Spring as ferramentas que são hoje. Se querem ser conhecidos e respeitados na comunidade façam algo que ainda não existe ou cubra uma brecha que ainda não foi tratada pelas ferramentas anteriores.

não precisa?
não usa :wink:

A novidade é isso que vc colocou e não percebeu, a facilidade de uso e aprendizagem… :shock:

Eu desprezo a opinião de quem acha que framework bom é aquele que usa XML para configuração.

Em nenhum momento dissemos que o mentawai é uma revolução ou que te traz outro paradigma de programação totalmente inovador.

O Mentawai busca ser um framework web mais produtivo e simples de aprender. Caso você não tenha percebido, existem diferenças gritantes entre o Struts e o Mentawai. Não sei o que você quer ver de diferente ou não.

BTW, se você quer “ser conhecido e respeitado pela comunidade” começe a não desprezar o trabalho duro dos outros e começe a fazer algo de útil. Se você não teve a curiosidade de olhar no fórum do framework, veja que muitas empresas usam o framework em projetos importantes:
ttp://forum.mentaframework.org/posts/list/157.page

Seu post lamentável.

JavaServer Faces FTW!!!

rofl :-o

Pessoas com muito mais credibilidade que vc já usaram e aprovaram.

O pessoal do projeto OpenSolaris da Sun usa e aprova e acho que eles tem o intelecto um pouquinho só mais evoluído que o seu.

Existe ERP feito com o mentawai na França.

Várias empresas do Brasil e do exterior estão usando com sucesso.

E por aí vai…

Cuidado para não fazer papel de bobo e deixar transparecer um sentimento claro de RECALQUE.

Procure estudar e se atualizar de vez em quando também…