Um resumo das novidades da versão 2.0 do JSF, que simplificou e aprimorou diversos itens como o desenvolvimento de páginas, componentes e controladores de página.
Atenção: esse artigo tem um vídeo complementar. Clique e assista!
De que se trata o artigo:
Um resumo das novidades da versão 2.0 do JSF, que
simplificou e aprimorou diversos itens como o desenvolvimento de páginas,
componentes e controladores de página. A criação rápida e simples de componentes,
o suporte nativo a Ajax e ao gerenciamento de recursos estáticos, a
possibilidade de realizar requisições via GET com parâmetros na URL, a navegação
implícita sem a necessidade de XML e as melhorias no processamento do ciclo de
requisição são as principais mudanças na nova versão do JSF.
Para que serve:
Este artigo foi escrito para pessoas que desenvolvem
interface de usuário web com Java usando as tecnologias JSP e Servlets com ou
sem uso de frameworks.
Em que situação o tema é útil:
Este artigo é útil para desenvolvedores, arquitetos ou
gerentes que estejam considerando o uso do JSF 2.0 em seus projetos, pois
apresenta a partir de uma aplicação exemplo implementada em Java EE 6 as
principais novidades do JSF.
JSF 2.0:
A versão 2.0 da especificação JavaServer Faces foi publicada
no final de 2009 com muitas inovações para tornar o desenvolvimento de aplicações
web melhor e mais simples. A especificação é liderada por Ed Burns e Roger
Kitain.
Neste artigo apresentaremos as principais mudanças da JSF
2.0, como: Facelets, Composite Components,
AJAX, Recursos, Eventos de Sistema, Estágio de Projeto, dentre outras. Autores: Vinny Nunes e Eder Magalhães
JavaServer Faces (JSF) é uma especificação técnica do Java Community Process (JCP), publicada
em 2004, com o objetivo de padronizar um framework
para desenvolvimento da camada de apresentação em aplicações web.
Esta especificação busca maximizar a produtividade no
desenvolvimento de aplicações web, minimizar a complexidade de manutenção,
evoluir a experiência do usuário com uso de técnicas AJAX, proporcionar melhor
integração com outras tecnologias web, dentre outros objetivos. Além disto, também
oferece uma infraestrutura para criação de componentes interativos integrados a
todas as soluções oferecidas pela especificação, por exemplo: conversores,
validadores, eventos, vínculo a dados e a métodos (ou data binding e method binding).
A versão 1.x trouxe novos conceitos ao desenvolvimento web
tais como árvore de componentes, fases do ciclo requisição e resposta,
conversores e validadores. Foi também uma versão para amadurecimento. De fato,
entre 2004 e 2009, vários projetos open source estenderam a JSF trazendo
soluções para necessidades ainda não contempladas como validação de campos de
formulário sem a necessidade de acessar o servidor, tecnologia mais simples e
com melhor desempenho para descrever páginas JSF, novos conversores, novos
validadores, novos escopos para controladores de página e principalmente novos
componentes interativos: tabelas com ordenação e filtro simples, caixas de
sugestão, menus e gráficos. Dentre os projetos podemos citar JSFTemplating,
Woodstock, Richfaces, MyFaces, Seam, IceFaces, Primefaces e ADF Faces.
A versão 2.0 teve no grupo de especialistas da especificação
desenvolvedores da Apache, Oracle, Redhat, IceSoft entre outras empresas
bastante envolvidas com JSF, facilitando a introdução na especificação das
soluções criadas por estas empresas. Gerenciamento de recursos, Facelets,
suporte a Ajax e novos escopos são exemplos.
Vale a pena aprender JSF?
JSF já é o framework Java mais usado para desenvolvimento de
aplicações web com Java. Seu excelente conjunto de funcionalidades faz com que
esta tecnologia seja favorita no cenário de desenvolvimento em que está
inserida. Isto se deve a vários motivos:
É uma
especificação que faz parte da Enterprise
Edition desde a versão 5;
É um framework
cuja API também foi pensada para os desenvolvedores de IDEs (Eclipse,
NetBeans, JDeveloper, ...), não somente para os desenvolvedores de
aplicação;
Tem
soluções para necessidades comuns do desenvolvimento web, propostas e
consolidadas a partir da experiência de outros frameworks MVC de mercado,
tais como Struts, Tapestry e Spring Web Flow;
Faz
parte da certificação SCWCD 6 junto com Servlets e JSP;
Possui
uma comunidade bastante ativa em fóruns e no IRC;
Possui
bons materiais de estudo no formato de livros, documentos digitais e sites;
Exige
pouco conhecimento inicial para construção de interfaces de usuário
tradicionais, como consultas baseadas em lista e cadastros;
Preparada
para ser estendida, possui ótimas bibliotecas de componentes livres ou
pagas desenvolvidas por terceiros. Estas bibliotecas oferecem recursos
interativos similares aos encontrados na interface de usuário para desktop,
evitando assim a necessidade da equipe de desenvolvimento dominar
tecnologias cliente como HTML, Javascript e CSS;
Oferece
capacidades interativas integradas com AJAX. Isto com mínima necessidade
de escrever Javascript.
Aplicações web precisam: converter e validar dados, integrar
com o banco de dados ou outra forma de persistência, oferecer mecanismos de
segurança, internacionalização, localização, acessibilidade, suporte a css,
suporte a criação e uso de templates, entre muitas outras funcionalidades. Frameworks
que oferecem estas soluções tornam as tarefas do desenvolvedor mais simples e
as tarefas do usuário mais fáceis de realizar. O JSF oferece todas estas
soluções.
ScrumToys
O projeto ScrumToys nasceu no evento The Developer Conference Floripa 2008 para apresentar em uma
aplicação exemplo as novidades vindouras da versão 2.0 do JSF. Em 2009, Ed
Burns convidou a comunidade a desenvolver uma aplicação real world para exemplificar as novidades da JSF 2.0. Em seguida Yara
Senger aceitou o convite e convidou Vinicius Senger, Vinny Nunes, Alberto Lemos
(Spock), André Frota e Éder Magalhães para adaptar a aplicação apresentada no
evento em Florianópolis. Esta adaptação foi necessária para a aplicação ser
aceita pelo grupo de especialistas da especificação e basicamente compreendeu
trocar tecnologias de mercado por tecnologias padrão da JCP. Onde a aplicação
usava Tomcat 6, JPA com Hibernate e MySQL adaptamos para Maven 2, Glassfish 3,
JPA com EclipseLink, Java DB e Bean
Validation.
Também tivemos a participação de Ed Burns implementando um
exemplo de validação com as funcionalidades oferecidas pela especificação JSR
303 – Bean Validation. A aplicação se
tornou um dos exemplos Java Enterprise
Edition 6 do servidor Glassfish e está disponível no NetBeans a partir da
versão 6.8 e no CVS do projeto Mojarra.
A aplicação tem como propósito oferecer ao usuário
funcionalidades para o acompanhamento de projetos ágeis usando Scrum. Nela é
possível cadastrar projetos, iterações (sprints),
estórias e tarefas e consultar o dashboard
de cada uma das iterações.
As principais entidades do domínio do problema são
apresentadas na Figura 1.
Figura 1. Diagrama de domínio do
ScrumToys.
No Scrum um projeto é desenvolvido em várias iterações, onde
uma iteração contém várias estórias e uma estória contém várias tarefas.
Para o domínio proposto, temos seis funcionalidades
disponíveis:
•
Consultar
Dashboard da Iteração – apresenta
as estórias da iteração, as tarefas abertas, as tarefas em andamento e as
tarefas já concluídas. Esta funcionalidade permite aos membros da equipe ágil
acompanhar diariamente o andamento da iteração;
•
Gerenciar
Projetos / ver Projetos – permite criar, editar, remover e consultar os
projetos;
•
Gerenciar
Iterações – permite criar, editar, remover e consultar as iterações de um
projeto;
•
Gerenciar
Estórias – permite criar, editar, remover e consultar as estórias de uma
iteração;
•
Gerenciar
Tarefas – permite criar, editar, remover e consultar as tarefas de uma
estória;
•
Trocar
tema / Mudar aparência – permite escolher um dos quatro temas disponíveis.
A partir de agora, convidamos você, leitor, a criar um
projeto na aplicação ScrumToys para que possa identificar mais fácil as
novidades do JSF 2.
Usando o ScrumToys
Primeiro vamos realizar o cadastro de um projeto de nome Estudo do JSF 2.0 com uma única
iteração. Como estórias desta iteração devem ser cadastrados os artefatos que
representam as colunas da Tabela 1.
As Figuras 2, 3 e 4 apresentam respectivamente as listas de projetos, iterações (sprints) e estórias após o cadastro.
As tarefas de cada estória correspondem às linhas associadas
à coluna da estória. Desta forma, a estória do artefato Páginas deve ter como
tarefas suas principais novidades: XHTML, Templates, Recursos, Ajax, Estágio de
projeto, Novos Escopos, Eventos, Parâmetros de visão e Favoritos, Melhorias na
EL e Validação.
Figura 2. Projeto cadastrado.
Figura 3. Iteração cadastrada.
Figura 4. Estórias cadastradas.
O dashboard da
iteração deve ficar parecido com o da Figura
5.
Figura 5.Dashboard do projeto Estudo do JSF 2.0.
No cadastro da iteração digite “09:00” para o horário da
reunião diária. A prioridade e a estimativa podem ser fixadas em 5. Os demais
campos podem ser preenchidos livremente.
Novidades
Como este artigo foi escrito para quem conhece JSF e para
quem pretende conhecer, procuramos classificar as novidades em artefatos
conhecidos do desenvolvimento web. São eles: Páginas, Componentes,
Controladores de página e Navegação.
Na Tabela 1 podemos
identificar em que artefatos determinada novidade pode ser utilizada.Note que a tabela explicita que grande
parte das novidades facilita o desenvolvimento das páginas, e isto faz bastante
sentido, pois a V(isão) dentre os demais componentes do padrão de projeto
arquitetural MVC é o que mais necessita de facilidades.
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos dois tipos de planos: o plano recorrente e o plano anual. No plano recorrente, a cobrança é lançada mensalmente no cartão de crédito, necessitando apenas do limite para uma parcela. No plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX ou no Boleto parcelado (sujeito à analise de crédito)
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias, tanto no plano anual quanto no plano recorrente. Após esse período, se você estiver no plano recorrente e optar por cancelar antes de completar 12 meses, há uma taxa de 10% sobre o valor total. No plano anual, não há multas adicionais, mas o valor pago não é reembolsável.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
A renovação é automática?
Sim, nosso plano anual renova automaticamente após 12 meses, proporcionando conveniência e continuidade no seu aprendizado. Na renovação automática não é debitado do seu cartão as 12 parcelas. Para facilitar e não prejudicar o seu limite, a renovação é feita no modelo recorrente, cobrando uma mensalidade a cada mês.
Além disso, a renovação não tem fidelidade, oferecendo total flexibilidade. Você também tem a liberdade de desativar a renovação automática a qualquer momento, garantindo controle absoluto sobre sua assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com
vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa
bagagem consegui um estágio logo no início do meu primeiro
período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo. Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento! Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a
pena, pois a plataforma é bem intuitiva e muuuuito
didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito
obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento
front-end, tinha coisas que eu ainda não tinha visto. A
didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado,
adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É
um passo a passo incrível. Só não aprende quem não quer.
Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido
bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da
programação, irei assinar meu contrato como programador
graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana,
aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem
como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de
seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com
React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo
muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na
área.