Quer ter acesso a todos os cursos desse Guia?

Guia de Referência JSF - JavaServer Faces

Neste Guia de Referência você encontrará todo o conteúdo que precisa para conhecer o JSF, especificação Java que traz conceitos do padrão MVC e que facilita a construção de interfaces web utilizando componentes.

Introdução

Os Servlets são a base do desenvolvimento web em Java e, por este motivo, estão presentes em frameworks e APIs criados para esse fim, fornecendo a infraestrutura básica necessária para o seu funcionamento. Assim sendo, apesar de não utilizarmos mais Servlets diretamente, para que seja possível compreender como uma aplicação Java web funciona, recomendamos uma introdução a essa tecnologia, papel realizado pelo curso abaixo.

Após os Servlets, algumas tecnologias foram criadas com o intuito de simplificar o desenvolvimento de aplicações Web. Parte desse esforço procurava oferecer uma melhor arquitetura, pois os Servlets concentravam muitas responsabilidades em um único artefato.

Além disso, tarefas comuns, como gerar HTML para o cliente, eram difíceis de serem realizadas com Servlets:


out.println("<table class=\"table\">");

JSF trouxe uma abordagem voltada para interfaces de usuário, disponibilizando para o programador uma rica coleção de componentes, bem como uma melhor separação entre as camadas da aplicação. Com o JSF, o programador pode escrever views em XHTML e através de Data Binding conectá-las a classes Java (Figura 1).

Modelo, Visão e Controle no JSF
Figura 1. Modelo, Visão e Controle no JSF

Para uma introdução completa ao JSF recomendamos os cursos:

Primeiros passos

Para que você comece a utilizar o JSF preparamos os posts abaixo. Neles você observará que a construção da interface web com JSF se assemelha bastante à construção de uma página HTML, mas com algumas pequenas mudanças nas tags.

Nesses conteúdos você aprenderá também que o JSF não se resume a construir a página a ser exibida ao usuário. Veremos que ele traz consigo o padrão MVC para separar as responsabilidade de cada elemento a ser desenvolvido para o sistema web, o ciclo de vida de uma requisição (Figura 2), entre outros assuntos.

Ciclo de vida de uma requisição no JSF
Figura 2. Ciclo de vida de uma requisição no JSF

Para aprender mais sobre ele, acesse os links:

Recursos básicos

Para que você possa conhecer em mais detalhes alguns recursos do JavaServer Faces, preparamos os posts abaixo. Um dos termos mais comuns quando lidamos com essa tecnologia é o Managed Bean, ou bean gerenciado. Podemos defini-lo como o controller do MVC. É ele o responsável por fazer a ligação entre a visão (as páginas XHTML) e o modelo do nosso sistema. Para aprender sobre eles, acesse:

Outro importante conceito do JSF são os escopos. É por meio deles que definimos por quanto tempo os managed beans serão mantidos pelo servidor. Por exemplo: pode ser interessante criar e manter um managedbean durante toda a sessão de um usuário. Em outras situações, pode ser interessante manter esse item somente durante a execução de uma requisição.

Conhecer essas opções é importante não apenas visando o consumo adequado de recursos do servidor, mas também à segurança dos dados.

Para aprender sobre outros recursos relacionados ao JavaServer Faces, acesse:

Componentes

Para a construção da interface de usuário o JSF oferece uma série de componentes para exibição e entrada de dados, como commandButtons, inputTexts, entre outros. Para conhecer essas opções, acesse:

Além desses, também temos a opção de construir novos componentes. A essa opção é dado o nome de composite components. Ela possibilita ao programador facilidade de reuso de código ao prover um meio padrão de criar componentes, por exemplo, um formulário de login. Aprenda sobre isso nos posts abaixo:

AJAX

O JavaServer Faces possibilita também o desenvolvimento de soluções AJAX sem que o programador precise lidar com JavaScript. Essa característica é encapsulada dentro dos componentes e pode ser utilizada quando eles são declarados dentro da tag <f:ajax>. Veja um exemplo prático da utilização dessa tag no curso:

Com esse recurso podemos construir telas com melhor experiência para o usuário. Telas que podem realizar requisições assíncronas para a execução de lógica ou validações, por exemplo, e assim avaliar o preenchimento de um campo sem que seja necessário recarregar totalmente a página.

Facelets

Quando lidamos com a construção da interface de usuário, algo comum é a criação de templates. Estes possibilitam a definição de estruturas padrão a serem seguidas por um conjunto de páginas da aplicação evitando a repetição de código. Para aprender sobre Facelets e a criação de templates em JSF, acesse:

Boas práticas

O desenvolvimento web é repleto de convenções e boas práticas, que vão de dicas a padrões que podem ajudar a melhorar a qualidade do código, bem como o desempenho da sua solução. Os posts abaixo abordam esse assunto e lhe fornecerão um conhecimento extra com base na experiência de outros programadores web:

PrimeFaces

Nos primeiros exemplos com JSF você deve ter notado que o visual dos elementos da página não é dos mais bonitos, lembrando e muito o tradicional formulário HTML, não é mesmo? O PrimeFaces é um framework criado para sanar esta e algumas outras limitações.

Como um dos seus diferenciais, ele traz um conjunto com mais de 100 componentes visuais prontos para fornecer a melhor experiência de uso, sem que para isso seja necessário conhecer JavaScript e CSS ou frameworks relacionados.

Assim, até mesmo o programador back-end que tem menos contato ou nunca precisou construir uma view conseguirá elaborar interfaces agradáveis visualmente. Para aprender sobre o PrimeFaces, acesse:

Componentes do PrimeFaces

Entre os componentes do PrimeFaces, dois dos mais utilizados são o DataTable e o Drag and Drop. Saiba como utilizá-los nos posts abaixo:

Na prática

Para solidificar o conhecimento adquirido até aqui, nada melhor o que colocá-lo em prática. E como estamos tratando de JSF e PrimeFaces, o que veremos é, de fato, como criar aplicações web com Java utilizando duas das principais tecnologias com esse propósito. Como posts iniciais, sugerimos:

Contudo, como acontece no desenvolvimento de qualquer aplicação, é comum utilizarmos mais tecnologias para criar um projeto. Os conteúdos abaixo retratam algumas opções, como a junção do JSF com a HTML5, com o Bootstrap e a criação de aplicações web que têm como base de dados uma solução não relacional:

Além dessas publicações, reunimos mais algumas que podem lhe ajudar em implementações do dia a dia, por exemplo:

Alternativas ao PrimeFaces

O PrimeFaces não é o único framework que fornece componentes para aprimorar a construção de interfaces de usuário. Você também encontrará publicações sobre ICEfaces, RichFaces, entre outras. Todas elas possuem algum diferencial, mas foi o PrimeFaces que conquistou a preferência dos programadores.

Para aprender sobre as principais opções, acesse:

RichFaces

A segunda opção é o RichFaces, sobre o qual também temos vários posts publicados. Confira:

ICEfaces

Caso sua opção seja por iniciar um projeto com o ICEfaces, ou mesmo precisa manter um sistema legado que adota esse kit de componentes, acesse:

Maven

Uma das etapas que mais pode gerar dificuldades e problemas durante o desenvolvimento e implantação de uma aplicação é o gerenciamento das dependências. Imagine como seria gerenciar, manualmente, todas as bibliotecas e frameworks dos quais seu projeto depende? Pensando em evitar tamanha complexidade e simplificar não apenas essa tarefa, mas também a construção de diferentes tipos de projetos, este guia reúne uma coleção de publicações que ensinará como gerenciar dependências e explorar todas as facilidades que o Maven provê ao desenvolvedor.

Se você quiser se aprofundar no Maven, ferramenta que utilizamos para a preparação de diversos ambientes de desenvolvimento, assita:

Apache Tomcat

Um dos containers web mais utilizados no mundo, o Apache Tomcat é uma solução bastante conhecida principalmente dos desenvolvedores Java, sendo utilizada não apenas durante a construção dos projetos, mas também em ambientes de produção. Neste guia você aprenderá tudo o que precisa para saber como disponibilizar suas aplicações nesse servidor web.

Caso você queira saber mais sobre o Apache Tomcat, confira os artigos:

Conhecimentos Fundamentais de Front-End

Por fim, você pode se interessar pelo desenvolvimento Front-end web e conhecer melhor o HTML, CSS e a linguagem JavaScript. Para isso, acesse:

Mais sobre Java

Além dos cursos e exemplos sugeridos nesse guia, a DevMedia publica com frequência novos conteúdos sobre Java, os quais você pode conferir nos Guias de Consulta abaixo:

Além disso, você pode conferir todo o conteúdo de Java clicando aqui.

Veja esse ebook
Crie sua conta grátis e baixe o e-book
Dê um upgrade no início da sua jornada.

Perguntas frequentes

Quem somos?
A DevMedia é uma escola de formação de programadores com mais de 20 anos de mercado. Já formamos mais de 100 mil programadores. A DevMedia ensina programação web, (desenvolvimento de site e aplicativos para celulares). A programação web é a área que mais contrata programadores em todo o mundo, sendo a maior porta de entrada para a área da tecnologia.
Por que a programação se tornou a profissão mais promissora da atualidade?
Nunca o mundo necessitou tanto de programadores como atualmente. Com a quarentena estabelecida pela Covid-19, lojas, restaurantes, escritórios e escolas, que tiveram suas atividades paralisadas, perceberam a urgente necessidade de adaptar seus negócios para o mundo digital. Em contrapartida as empresas de tecnologias, durante esse período, cresceram como nunca tanto em faturamento quanto em número de usuários. Com isso a necessidade de programadores cresceu muito. Empresas de grande e pequeno porte estão com vagas abertas e não conseguem contratar por falta de profissionais qualificados. No momento estima-se que o número de oportunidades no Brasil seja acima de 200 mil!
Como faço para começar a estudar?
Programação é um universo amplo, existem muitos caminhos e por isso é muito fácil se perder. Nosso conselho é: NÃO ESTUDE SOZINHO. Infelizmente 78% das pessoas que começam a estudar sozinhas desistem da profissão por não conseguirem aprender. Com uma boa orientação elas teriam conseguido! Se você tomou a decisão de entrar nesse mercado, faça um investimento no seu futuro e busque aprender com quem sabe. Isso vai triplicar suas chances de dominar a programação e conquistar uma vaga no mercado.
Em quanto tempo de estudo vou me tornar um programador?
O tempo depende, claro, da dedicação de cada estudante. A DevMedia ensina programação há 20 anos e com toda essa experiência montamos uma metodologia que tem como objetivo principal acelerar os seus estudos. Você terá um Plano de Estudo para te orientar em todos os passos do aprendizado. Desenvolverá diversos projetos reais para colocar em prática os conhecimentos e contará com o melhor suporte ao aluno da web. Todas as suas dúvidas serão respondidas de imediato. Seguindo nossa metodologia e se dedicando, entre 6 meses e um ano você já estará programando.
Sim, você pode se tornar um programador e não precisa ter diploma de curso superior!
Ser programador é uma das maiores oportunidades que o Brasil oferece para quem não tem condições de fazer uma faculdade. Muitas empresas contratam sem fazer questão de diploma, o que importa para elas é que o candidato seja um bom técnico e consiga atender suas necessidades. Os salários iniciais para programadores são de R$2.500 mil, podendo chegar aos R$15 mil para aqueles que se dedicam. Com disciplina e um estudo correto, que não te faça perder tempo, é possível se tornar um programador em menos de um ano de estudo. Quando você já estiver empregado, aí sim você pode se aprimorar ainda mais fazendo uma faculdade na área.
O que eu irei aprender estudando pela DevMedia?
Nossas trilhas de estudo te permitem virar um programador Full Stack, que é aquele programador mais completo, ele domina o desenvolvimento Front-end, Back-end e Mobile. Você ficará apto para criar sistemas para computadores e aplicativos para celulares. Utilizamos como base a linguagem JavaScript que é a linguagem mais utilizada no mundo. Outra vantagem do JavaScript é a quantidade de oportunidades no mercado de trabalho. É sem dúvida a linguagem que mais possui vagas e a que mais dá oportunidade para os iniciantes.
Principais diferenciais da DevMedia
Suporte ao aluno - O aluno conta com a ajuda de professores para tirar dúvidas durante toda a jornada de ensino. As perguntas são respondidas em menos de uma hora por professores experientes e atuantes no mercado. Gamificação - A plataforma de ensino é divertida e motivante. É como se o aluno estivesse dentro de um game. Ele terá seu card pessoal, que poderá ser customizado utilizando as moedas que ele ganha quando acerta os exercícios. Ele poderá também trocar suas moedas por outros produtos dentro da plataforma. Além disso, seus acertos contam pontos no ranking mensal dos alunos. Tudo isso deixa os estudos mais leves e motivantes. Didática - A DevMedia já ensina programação há mais de 20 anos. Desenvolvemos ao longo desse tempo uma metodologia que ensina a programar de verdade, com menos aulas e mais prática, são dezenas de projetos e exercícios que desenvolvem a mente programadora no aluno. Projetos reais - Durante os estudos os alunos irão desenvolver dezenas de projetos em cada uma das carreira (front-end, back-end e mobile). Mas o principal é que os projetos da DevMedia não são “copia e cola” como se encontra por aí. Aqui o aluno vai desenvolver os projetos de forma autônoma, recebendo claro a nossa mentoria e suporte, mas o aluno terá condições para desenvolvê-los sozinho. Milhares de exercícios - Programação é prática, por isso a cada nova matéria o aluno passará por um bloco de exercícios para fixar o conteúdo e cada acerto será bonificado com pontos e moedas e valem uma posição no ranking dos alunos.
Qual o investimento financeiro que preciso fazer para me tornar um programador?
Na internet é possível encontrar cursos de todos os preços, desde 50,00 a R$15.000,00. Os cursos de 50,00 são cursos avulsos, que explicam apenas pedaços de uma determinada matéria. Para criar um conhecimento completo você precisaria comprar no mínimo de 15 a 20 cursos avulsos e correria o risco deles não se complementarem tão perfeitamente e seu conhecimento ficaria cheio de "buracos". Os cursos de R$15.000,00 não fazem nenhum sentido. Deixe para investir em cursos caros quando quiser se especializar. Por esse preço você pode inclusive estudar fora do pais. Na DevMedia, você terá um plano de estudo montado por quem já formou mais de 100 mil alunos, e já está nesse mercado há mais de 20 anos. Somos a única plataforma que oferece Suporte ao Aluno em tempo real e uma experiência de estudos gamificada para te manter motivado durante todo o período de estudo. E o melhor, nosso pagamento é recorrente, você não precisa usar o limite do seu cartão de crédito para investir no seu futuro. Aproveite para se matricular agora mesmo.

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar