javaserver faces 1.2 - DI @ UMinho

Propaganda
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JAVASERVER FACES 1.2
Mestrado em Informática – Universidade do Minho!
31!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Java Server Faces (JSF)
 
JSP – uma tecnologia"
 
JSF – uma framework MVC(-like)"
- 
JSP para a apresentação (ou não)"
 
- 
Java Beans para o modelo"
 
- 
utilização da JSF API!
Faces servlet faz o controlo"
 
 
utilização da JSF tag library!
Configurado via (faces-config.xml e web.xml – JSF 1.x)"
Aplicações JSF correm num web container (e.g.
Apache Tomcat)"
Mestrado em Informática – Universidade do Minho!
32!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: MVC
Mestrado em Informática – Universidade do Minho!
33!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF – Principais características
 
Componentes de UI stateful!
 
Gestão de Beans (Bean management)"
 
Especificação da navegação entre páginas"
 
Validação de dados (input)"
 
Conversão de dados (input <-> modelo)"
 
Tratamento de erros"
 
Processamento de eventos (Event handling)"
 
Suporte à internacionalização (localization)"
Mestrado em Informática – Universidade do Minho!
34!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Ola Mundo em JSF
Mestrado em Informática – Universidade do Minho!
35!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Olá mundo em JSF – bean
Mestrado em Informática – Universidade do Minho!
36!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: backing beans
 
Uma app JSF tipica tem um ou mais backing bean!
- 
 
 
Propriedades são associadas"
- 
ao valor do componente (valor guardado no componente)"
- 
à instância do componente (valor guardado no bean)"
Métodos"
- 
- 
- 
 
JavaBeans associados ao componentes de IU da página"
validação"
tratamento de eventos"
navegação"
Utiliza-se a JavaServer Faces expression language (EL) #{…} "
Mestrado em Informática – Universidade do Minho!
37!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Instance- vs. value-binding
 
 
 
Instance-binding!
- 
o backing bean pode modificar o componente"
- 
o backing bean pode instanciar componentes "
Value-binding"
- 
maior separação entre modelo e vista"
- 
a página tem mais controlo sobre o componente"
- 
o backing bean não depende da API JSF"
- 
conversões feitas automaticamente pela framework"
Tipicamente utiliza-se value-binding!
Mestrado em Informática – Universidade do Minho!
38!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Olá mundo em JSF – JSP
Tags"
Beans"
Validators"
Mestrado em Informática – Universidade do Minho!
39!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Olá mundo em JSF – Managed beans
 
faces-config.xml"
- 
criação centralizada de beans"
- 
configuração das propriedades"
Mestrado em Informática – Universidade do Minho!
40!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: managed Beans
 
 
managed-bean-name – nome do bean no scope!
managed-bean-scope – scope em que o bean será guardado
(none, request, session, application) ""
- 
se bean referido numa binding tag deve usar-se request"
 
managed-bean-class – classe do bean"
 
managed-property – property-name / property-class / value"
Mestrado em Informática – Universidade do Minho!
41!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: core tag library
 
uri: http://java.sun.com/jsf/core"
 
doc: http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/tlddocs/"
Mestrado em Informática – Universidade do Minho!
42!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: standard HTML tag library
 
uri: http://java.sun.com/jsf/html"
Mestrado em Informática – Universidade do Minho!
43!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Tags
Mestrado em Informática – Universidade do Minho!
44!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Olá mundo em JSF – Validação
 
faces-config.xml v2"
Mestrado em Informática – Universidade do Minho!
45!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Olá mundo em JSF – NameValidator
Mestrado em Informática – Universidade do Minho!
46!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: Validação (4+1)
 
componentes built-in!
- 
 
ao nível da app"
- 
 
implementam a interface Validator"
métodos de validação (nos backing beans)"
- 
 
feita ao nível da lógica de negócio"
componentes custom"
- 
 
DoubleRangeValidator; LongRangeValidator; LengthValidator"
métodos devem respeitar assinatura do método validate da interface Validator "
atributo required"
- 
impedem valores nulos"
Mestrado em Informática – Universidade do Minho!
47!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Validação ao nível da app
 
 
prós"
- 
fácil implementação"
- 
sem necessidade de uma classe extra (c.f. custom)"
- 
sem necessidade de especificação na página"
contras"
- 
reutilização"
- 
manutenção"
- 
acontece após as outras"
Mestrado em Informática – Universidade do Minho!
48!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: processamento de resquests
Mestrado em Informática – Universidade do Minho!
49!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: Navegação
Mestrado em Informática – Universidade do Minho!
50!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: Navegação
Mestrado em Informática – Universidade do Minho!
51!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: Regras de navegação
Mestrado em Informática – Universidade do Minho!
52!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: Regras de nevegação
 
regras default!
 
pattern matching!
 
from-action"
Mestrado em Informática – Universidade do Minho!
53!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Vantagens de JavaServer Faces
 
Widgets mais poderosos (GUI controls)"
 
Gestão de Eventos"
 
Managed Beans!
 
EL – Expression Language!
 
Conversão e validação de inputs!
 
Configuração centralizada"
 
Encoraja MVC (consistência!)"
Mestrado em Informática – Universidade do Minho!
54!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
Desvantagens de JavaServer Faces
 
Curva de aprendizagem"
- 
projectos pequenos; prazos curtos, programadores
inexperientes"
 
Documentação (inferior a JSP)"
 
Maior opacidade na execução"
- 
 
Suporte ao desenvolvimento "
- 
 
debug; optimizações"
comparado com JSP"
Rigidez da abordagem"
 
MVC!"
Mestrado em Informática – Universidade do Minho!
55!
Engenharia de Aplicações – Sistemas Interactivos 2009/10!
JSF: links úteis
 
Tag library"
- 
 
API"
- 
 
http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/api/"
Documentation"
- 
 
http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/tlddocs/"
http://java.sun.com/javaee/javaserverfaces/reference/docs/"
Quick tutorial (with Eclipse)"
- 
http://www.vogella.de/articles/JavaServerFaces/article.html"
Mestrado em Informática – Universidade do Minho!
56!
Download