desenvolvimento baseado em componentes com jsf

47
Desenvolvimento baseado em componentes com Java Emmanuel Neri www.emmanuelneri.com.br @emanu_neri JSF - Java Server Faces

Upload: emmanuel-neri

Post on 10-Aug-2015

134 views

Category:

Software


1 download

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

1. Slide com teoria2. Demonstração do código3. Prática

Metodologia

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 Web

Desenvolvimento baseado em componentes

Benefícios Consequências

Reutilização de código Complexidade

Tempo(longo prazo) Tempo(curto prazo)

Maturidade

Framewoks de mercado

Component based Action based

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

Java EE 7

MVC - Model View Controller

JSF - Como funciona

Frameworks de componentes

Configurações

● Java 7● NetBeans● Maven ● Tomcat 7

Configurando Projeto● https://github.

com/emmanuelneri/minicursojsf-projeto.git

● 10.2.2.254/Jornada 2015/Java/minicursojsf-projeto

JSF - Como funciona

● 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

Coding...

Prática

● Faça a página de boas vindas do seu sistema.

Tags - xmlns:h="http://java.sun.com/jsf/html"

● h:form● h:inputText● h:outputText● h:commandButton● h:messages● h:panelGrid● etc...

Coding...

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

Coding...

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

Coding...

Prática

● Adicionar no template a data atual no padrão dd/mm/yyyy.

JSF - Como funciona

Managed Bean / Controller - Escopos

● É uma classe java● É o Controller do MVC● @ManagedBean

Managed Bean / Controller

● Request● View● Session● Application

Coding...

Ciclo de vida do JSF

Validadores

● Required● MinLength● MaxLength● f:validateLength ● f:LongRangeValidator

Conversores

● f:convertNumber● f:convertDateTime

Coding...

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

Coding...

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;

Ajax

● JSF possui suporte nativo● f:ajax● No primefaces as ações de botões são por

padrão ajax

Coding...

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;

Componentes Ricos

● Primefaces;● Facilidade;● Funções javascripts;● CSS;

Outros

● Listeners● Passangem de Parâmetros● Componentes customizados

Fim...

Emmanuel Neriwww.emmanuelneri.com.br

[email protected]@emanu_neri

github.com/emmanuelneri

https://github.com/emmanuelneri/minicursojsf