Olá pessoal,
Hoje veremos um recurso legal que temos no JSF 2.x, apesar da versão 2.0 ter sido lançada há um bom tempo já, eu ainda brincava com a versão antiga 1.2. Apesar de ter acompanhado os updates da versão mais recente, porém não tinha colocado nada em prática do no dia-dia. E algo que curtir bastante foi esse tal de “nagevação implícita” e não é que o trem é bão e produtivo? Vamos ver…
Lets GO…
Starting
A navegação implícita é um recurso novo que temos no JSF que nos ajuda a não ter que fazer declarações no face-config.xml. Na verdade no JSF 2.0 não é requerido ter um face-config.xml, mas há situações que é preciso ter, mas não entraremos nesse contexto. A pergunta é como a navegação implícita pode nos ajudar?
Ela pode nos ajudar quando precisamos navegar entre as páginas e que não é requerido validação. Na versão 1.2 tinhamos que passar isso no face-config.xml. Com navegação implícita não precisamos fazer as declarações de <navigation-rule> <navigation-case>, a única coisa que é requerida é que o nome do arquivo seja igual ao que passamos para o action de um componente JSF.
<h:commandLink value=”/pages/greeting” action=”/pages/greeting” />
<h:commandLink value=”contato” action=”contato”/>
Observe que podemos passar arquivos dentro de diretórios ou na raiz que o JSF vai entender sem problemas.
E o problema?
– É que você não pode ter dois arquivos com o mesmo nome no mesmo local (obvio);
– o nome do arquivo não pode ser alterado, caso seja terá que alterar todos os componentes que usam a navegação implícita com aquele arquivo, na versão com face-config.xml, há uma vantagem você precisa apenas atualizar o face-config.xml.
Quando usar?
Não há receita de bolo em dizer que no caso X deve sempre usar navegação implícita ou não. A questão é saber se o contexto que você tem, o recurso de navegação implícita agrega valor ou não.
Exemplo
Veja um exemplo simples que eu fiz, para criar o JSF Project estou usando o plugin Jboss Tools,caso não tenha veja como instalar no final que está no final do post.
Crie um projeto JSF Project
File >> New >> JSF Project
Crie dois arquivos XHTML: contato.xhtml e navimplicit.xhtml e deixe dentro de WebContent
Abra o arquivo navimplicit.xhtml e codifique o código a seguir:
<h:body>
<h:form>
<h:outputText value=“Usando Navegação Implicita JSF 2.0”/> <br/>
<h:commandLink value=“/pages/greeting” action=“/pages/greeting“ /><br/>
<h:commandLink value=“contato” action=“contato“/>
</h:form>
</h:body>
Não há nada de especial no código, exceto o conteúdo para o atributo action, o qual passamos a página ou o caminho onde está a página que desejamos abrir. Observe que não informamos o formato do arquivo, não é necessário informar.
A diferença entre os links é que no primeiro usamos a navegação implícita com um arquivo que está no diretório, enquanto no segundo, estamos pegando um arquivo que está na raiz do WebContent.
Executando
Para executar é bem simples, basta clicar com o botão direito e escolher a opção Run As >> Run on Server . é necessário ter um servidor de aplicação como tomcat, jetty etc. Para o exemplo estou usando o TomCat 7.0.
Acessando
Após ter feito o deploy, vamos testar o recurso. Então digite no browser:
http://localhost:8080/ExJSF20NavImplicit/navimplicit.jsf
Observe que no final adicionamos a página que tem os links com o recurso de navegação implícita. A sua página deve ter o conteúdo conforme a imagem a seguir:
Clique em um dos links e terá o resultado conforme a imagem a seguir:
E assim temos o resultado sem precisar configura o face-config.xml.
Abraços, vou ficando por aqui e espero que tenham gostado do post.
See ya!!!