Olá desenvolvedores, depois de termos passado pelo escopo do JSP e Spring MVC, vamos falar sobre o JSF – JavaServer Faces. O JSF, assim como o Spring traz conceitos do padrão de arquitetura MVC, seu objetivo é facilitar o desenvolvimento de interfaces web utilizando componentes. Muito embora possua também a sua parte back-end, a abordagem do JSF é centrada no usuário.

Note que nenhum conhecimento anterior é desprezado, cada framework, cada bloco de conhecimento vai complementando o anterior. Até porque um único framework não compõe tudo o que é necessário para o desenvolvimento de suas aplicações, neste cenário, é preciso unir uma tecnologia a outra.

Observe também que o tripé HTML, CSS e JavaScript é base para o desenvolvimento web, que neste caso integra-se ao JSF ou vice e versa. Ser baseado em componentes significa que o JSF disponibiliza para o programador uma série de componentes prontos, com diversas funcionalidades para facilitar o desenvolvimento de sistemas.

E neste momento você pode estar pensando, “ora, se o JSF oferece componentes prontos para montar minhas aplicações então não preciso saber HTML, CSS e JavaScript”. Sim, e não. De fato, por ser um framework orientado a componentes de telas e seus eventos, ele faz este trabalho “penoso” por nós. Porém, em algum momento você precisará de pelo menos o básico para desenvolver alguma funcionalidade, o JSF não é uma mágica solução para todos os seus problemas.

E mais, você não irá utilizá-lo para criar sites e/ou sistemas simples. Não, o JavaServer Faces compreende uma solução corporativa para a criação de sistemas robustos e complexos.

JSF E PRIMEFACES

E podemos desenvolver nossas aplicações utilizando apenas o JavaServer Faces ou utilizá-lo junto com o PrimeFaces que se integra ao JSF. O PrimeFaces é uma biblioteca de componentes de interface do usuário para sistemas desenvolvidos baseados em JavaServer Faces.

Entre as muitas funcionalidades o PrimeFaces possui uma biblioteca com mais de 100 componentes de interface do usuário. Entre os quais, estrutura de envio, de diálogo, possibilita a validação do lado do cliente, kit de interface de usuário para celular entre outros recursos.

JSF E BACK-END

Como mencionamos no início deste artigo o JSF também pode atuar do lado do servidor. E do mesmo modo como é com o PrimeFaces, podemos utilizar apenas o JSF ou integrado ao Spring MVC. Ou ainda, você pode usar o JavaServer Faces com o JPA – Java Persistence API ou com Hibernate.

É obrigatório a integração? Não, não é. Mas é interessante saber integrá-los, isso não apenas amplia seu leque de opções, como o torna um programador ainda mais completo. Quanto mais conhecimento, mais liberdade e melhores decisões poderá tomar, visto que não estará limitado a uma única solução, ou seja, a única que você conhece.

JSF E O BANCO DE DADOS

Solucionamos o front e o back-end, precisamos então gravar os dados no sistema, queremos poder manipulá-los, e pra isso, voltamos ao SQL e o JDBC. Ao longo dessa série, tem-se tornado evidente que alguns conhecimentos são essenciais. Sem o tripé HTML, CSS e JavaScript você não desenvolve a interface das suas aplicações, ou as desenvolve limitado pelo que os frameworks podem fazer por você. E sem banco de dados, seus sistemas não serão muito úteis para os seus clientes.

E se você não sabe SQL você não conseguirá utilizar o JPA e o Hibernate. E mais, se por exemplo, você esbarra em um problema de performance e constata que o problema é ocasionado justamente na parte em que usou o JPA ou o Hibernate. Neste caso a solução pode passar pela substituição deste trecho problemático pelo SQL puro. Mas se você se ancora apenas em frameworks, terá em mãos um problema a mais.

E MAIS …

Mas se você não domina orientação a objetos, não sabe os fundamentos da web, significa que ainda não adquiriu “maturidade” para utilizar os frameworks, não tem como usá-los, sem estes conhecimentos prévios. Conhecimentos estes, que fazem parte do escopo dos conhecimentos essenciais para se tornar um programador.

Pense em qualquer framework Java que você deseja aprender, não será possível se você não souber Java antes. E o caminho é aquele que você já conhece, lógica de programação, algoritmos e orientação a objetos. E como não canso de repetir, não existem atalhos.

EM POUCAS PALAVRAS

Então é isso, se quer aprender qualquer framework Java, você tem que saber orientação a objetos primeiro. Se quer aprender framework que trabalha com banco de dados, tem que saber SQL. Se quer trabalhar com framework para web como o Spring MVC, terá que saber os fundamentos da web. E se quer construir aplicações robustas com front e back-end, então precisará aprender toda a estrutura que abordamos hoje.

Para desenvolver uma aplicação em Java existe uma série de frameworks que trabalham de forma integrada, em que cada um tem a sua funcionalidade, a sua própria responsabilidade. Bom, eu fico por aqui, nos vemos no próximo tutorial.