Java Server Faces, ou JSF para os mais intimos e basicamente um framework que trabalha com modelos de interfaces gaficas sobre eventos, e um framework baseado no conceito MVC para desenvolvimento web.MVC e o conceito Model-View-Controler, que consiste em separar seu codigo em camadas de visualizacao, controle e negocios, mas a principio esta sigla e inutil. Mais para frente retomarei o assunto.Em JSF todo o controle e feito por um Servlet (FacesServlet) por um conjunto de manipuladores de acoes e eventos e alguns arquivos de configuracao. Nao vou entrar muito no detalhe de cada bit que compoe a arquitetura senao daria uma biblia.O que importa e que JSF e um framework simples, facil de configurar e utilizar, agil e quebra muito o galho.A principal diferenca entre Struts e JSF e:O Struts sempre chama Actions primeiro(Classes, o famoso *.do) e JSPs depois, isso e configurado no Struts-config.xml.O JSF chama JSPs primeiro (*.JSF) e dentro destas paginas voce decide o que quer fazer.Mas o retorno configurado e basicamente o mesmo, voce configura um arquivinho XML, informa um parametro e dentro diz uma string de retorno e seu destino, ou varias strings de retorno e varios destinos.Facil ne?Se voce e iniciante em JSF ou em Struts nao se desespere essa e so uma comparacao, a parte legal vai comecar em algumas linhas.O Objetivo deste post (e dos proximos) e apresentar a quem interessar um tutorial facil de JSF, literalmente uma Receita de bolo. Como nao da pra explicar tudo em um unico post, separei por partes e irei postando aqui todos os links. tambem existe no menu um link proprio para JSF contendo todas os posts da categoria.Entao vamos ao que interessa:Parte 1.- Pra que lado eu atiro?Primeiro voce precisa ter um ambiente configurado, se ainda nao configurou o seu, clique neste link e veja como configurar, tem tambem este link que mostra como configurar o plugin Sysdeo do Tomcat no Eclipse.Se voce ja configurou o ambiente e ja esta com o Eclipse ou outra IDE preparada, podemos comecar.Vou mostrar como funciona a organizacao e fornecer todos os arquivos separadamente, mas irei fornecer o projeto final completo para download no final.Crie um novo projeto com um nome qualquer e defina a seguinte estrutura de pastas:E com esta estrutura de pastas que iremos trabalhar.Na pasta ant armazenaremos os arquivos de build.Na pasta JavaSource armazenaremos todos os pacotes e classes.Na pasta WebContent colocaremos todos os JSPs.A pasta WEB-INF deve obrigatoriamente estar dentro da pasta WebContents, e nela que colocaremos os arquivos de configuracao do JSF. Crie tambem dentro da pasta WEB-INF mais duas pastas, uma com o nome classes e outra com o nome lib.A pasta works nao serve para nada, ao menos para nos, ela sera usada pelo servidor, para ir guardando os arquivos temporarios, compilando as classes, etc, etc.Agora que criamos a estrutura de classes, vamos criar os arquivos.Dentro da pasta WEB-INF, crie um arquivo chamado faces-config.xml.Ainda na pasta WEB-INF, crie outro arquivo chamado web.xml.No arquivo faces-config.xml escreveremos todas as configuracoes do JSF, como managed-beans e regras de navegacao.No arquivo web.xml, escreveremos as configuracoes do