desenvolvimento baseado em componentes com jsf
TRANSCRIPT
Desenvolvimento baseado em
componentes com Java
Emmanuel Neriwww.emmanuelneri.com.br
@emanu_neri
JSF - Java Server Faces
● Análise e Desenvolvimento de Sistemas - Unipar● Especialização em Engenharia de Software - PUCPR● Mestrado em Desenvolvimento de Tecnologias - LACTEC
● Desenvolvedor Java desde 2010;○ Morena Rosa, Michelin, Land Rover/Jaguar, Mercedes Benz
● Atualmente desenvolvedor Java na TecSinapse● Pesquisador nas linhas de desenvolvimento de software e
arquitetura de software
Emmanuel Neri
● Introdução ao desenvolvimento web com JSF
● Configurando ambientes Java com JSF● Tags JSF e front-end JSF● Templates reutilizáveis ● Escopos JSF e o lado servidor● Conversão e validação de dados ● Ajax com JSF● Componentes ricos
Cronograma
Desenvolvimento baseado em componentes
“Unidade de software independente, que encapsula, dentro de si, seu projeto e implementação, e oferece serviços, por meio de interfaces bem definidas, para o meio externo.“
Desenvolvimento baseado em componentes
Benefícios Consequências
Reutilização de código Complexidade
Tempo(longo prazo) Tempo(curto prazo)
Maturidade
JSF - Java Server Face
“JSF é uma tecnologia que nos permite criar aplicações Java para Web utilizando componentes visuais pré-prontos, de forma que o desenvolvedor não se preocupe com Javascript e HTML. Basta adicionarmos os componentes (calendários, tabelas, formulários) e eles serão renderizados e exibidos em formato html.”
JSF - Java Server Face
● É um framework MVC● Guarda estado● Possui componentes prontos● Faz o binding automatico dos atributos● Faz parte do Java EE● Possui compatibilidade entre versões
Configurando Projeto● https://github.
com/emmanuelneri/minicursojsf-projeto.git
● 10.2.2.254/Jornada 2015/Java/minicursojsf-projeto
● XHTML é HTML escrito como XML;● XHTML significa Extensible HyperText Markup
Language;● XHTML é quase idêntico ao HTML;● XHTML é mais rigoroso do que o HTML;● XHTML é HTML definido como um aplicativo XML;● XHTML é suportado por todos os principais
navegadores
xhtml
Tags - xmlns:h="http://java.sun.com/jsf/html"
● h:form● h:inputText● h:outputText● h:commandButton● h:messages● h:panelGrid● etc...
Prática
● Fazer uma nova página, que será o login do sistema.
● Alterar no web.xml para ser a primeira tela do sistema.
● O login deve redirecionar para o index.xhtml
Tags - xmlns:ui="http://java.sun.com/jsf/facelets"
● ui:insert● ui:define● ui:include● ui:define● ui:param
Prática
● Criar uma nova página de template com nome do sistema e botão sair;
● O template deverá ter um menu com os links Home e Sair;
● Ao clicar no sair deverá enviar para o login;● Ao clicar em home deverá enviar para
página index.xhtml;
Tags - xmlns:f="http://java.sun.com/jsf/core"
● f:converterNumber● f:converterDateTime● f:validateLength● f:validateLongRange● etc...
Prática
● Criar um cadastro de cliente com os atributos código e nome;
● Validar os atributos para serem obrigatórios e o atributo código apenas receber um Long;
● Criar uma tela de pedido e converter os atributos data e valor total;
Injeção de Controllers
● @ManagedProperty● A injeção é feita através de uma chamada
EL● É necessário o set do atributo
Prática
● Adicionar a lista de produtos e clientes disponíveis no ClienteController e no PedidoController através de DI no PedidoController;
● Adicionar os atributos Cliente no Pedido;● Adicionar o selectOneMenu na tela de
pedido;
Prática
● Criar uma classe ItemPedido com os atributos Produto, Quantidade e valor;
● Adicionar uma Lista de ItemPedido no Perido;
● Adicionar no pedido.xhml os novos atributos;● Criar botão “Adicionar” e “Remover” que
joga os itens no pedido via ajax;
Fim...
Emmanuel Neriwww.emmanuelneri.com.br
[email protected]@emanu_neri
github.com/emmanuelneri
https://github.com/emmanuelneri/minicursojsf