PASSO ANTERIOR (PARTE 3).Ja estamos bem avancados em nosso projeto, ja temos uma boa base, vamos agora criar as paginas necessarias para a navegacao, alias, vamos inserir codigos por que as paginas ja foram criadas no passo 2.Puxando pela memoria, na introducao foi informado que se chamarmos uma pagina pela extensao JSP, as tags nao funcionariam, devemos invocar as paginas sempre utilizando a extensao JSF, neste post abordaremos um pouco deste assunto.Antes de mais nada, nosso projeto precisa de uma pagina principal, entao no arquivo index.jsp insira as seguintes linhas de codigo:<html><body><jsp:forward page=/pages/menu.jsf /></body></html>Mas por que logo na pagina inicial estamos redirecionando para outro lugar?Simples, se colocarmos as tags do JSF diretamente na pagina index.jsp elas nao funcionariam, por que o servidor esta invocando index.jsp e nao index.jsf.Existem outras formas ate mais elegantes para contornar este problema, por exemplo configurando o web.xml para chamar index.jsf e nao index.jsp, mas por enquanto este redirecionamento resolve nosso problema, e serve tambem como um otimo exemplo para sempre lembrarmos que devemos invocar as paginas utilizando a extensao JSF para que elas funcionem...Ok, ok, redirecionamos a pagina principal para menu.jsf, mas nao tem nada nesta pagina!Vamos inserir codigos nela entao!Abra o arquivo menu.jsp (lembre-se que JSF e uma extensao imaginaria, as paginas reais possuem a extensao JSP), e insira as seguintes linhas de codigo:<%@ taglib uri=http://java.sun.com/jsf/html prefix=h %><%@ taglib uri=http://java.sun.com/jsf/core prefix=f %><f:loadBundle basename=br.com.projetox.view.bundle.messages var=msg/><html><head></head><body><f:view><h1><h:outputText value=#{msg.pagina_principal_label_titulo}/></h1><h3><h:outputText value=#{msg.pagina_principal_label_site}/></h3><h:form id=helloForm><h:commandButton action=cadastro value=#{msg.pagina_principal_label_link} /></h:form></f:view></body></html>Agora vamos as explicacoes!As duas primeiras linhas, taglib, informam que utilizaremos nesta pagina algumas tags JSTL especificas do framework JSF.JSTL sao bibliotecas, conjuntos de codigos personalizados, para serem utilizados dentro das paginas JSPs, existem varias JSTLs, e e possivel ate criar a sua propria linguagem, porem o assunto aqui nao e este entao nao falaremos muito disso, mas ja estou preparando um post sobre isso. Vale saber que alguns dos arquivos JAR que fizemos download na introducao sao responsaveis por estas JSTLs que utilizaremos agora.Na taglib informamos a propriedade prefix, que e um apelido para utilizarmos esta JSTL dentro da pagina.A terceira linha utilizamos f:loadBundle, aqui ja estamos utilizando uma JTSL! Enfim, este comando serve para carregar o arquivo messages.properties e e claro que voce ja esta craque em properties ne?Note que informamos nesta linha o caminho inteiro (pacote) do arquivo properties, mas nao e necessario informar a extensao, a propriedade var=msg funciona igual o prefix da taglib, e um apelido para utilizarmos na pagina.Na tag h:outputText utilizamos a segunda taglib importada, esta e utilizada mais para campos de formulario e similares, como por exemplo neste caso estamos criando um outputText, que e como um label do VB ou de aplicacoes Java Desktop, simplesmente insercao de texto!E nesta linha ja invocamos uma variavel do arquivo properties msg.pagina_principal_label_site, o msg. e apelido do properties que definimos na terceira linha, o resto e o nome da variavel que esta declarada no properties, fazendo isso, a pagina vai procurar no arquivo properties a variavel pagina_principal_label_site, e vai escrever na pagina o valor desta variavel.Na tag h:form, estamos criando um formulario, assim como no HTML, precisamos iniciar um formulario quando quisermos