Navegação Implicita JSF 2.x

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!!!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *