Você está na página 1de 26

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JAVASERVER FACES 1.2

Mestrado em Informtica Universidade do Minho!

31 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Java Server Faces (JSF)


JSP uma tecnologia" JSF uma framework MVC(-like)"


-

JSP para a apresentao (ou no)"

utilizao da JSF tag library! utilizao da JSF API! Congurado via (faces-cong.xml e web.xml JSF 1.x)"

Java Beans para o modelo"

Faces servlet faz o controlo"

Aplicaes JSF correm num web container (e.g. Apache Tomcat)"


32 !

Mestrado em Informtica Universidade do Minho!

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: MVC

Mestrado em Informtica Universidade do Minho!

33 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF Principais caractersticas

Componentes de UI stateful! Gesto de Beans (Bean management)" Especicao da navegao entre pginas" Validao de dados (input)" Converso de dados (input <-> modelo)" Tratamento de erros" Processamento de eventos (Event handling)" Suporte internacionalizao (localization)"
34 !

Mestrado em Informtica Universidade do Minho!

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Ola Mundo em JSF

Mestrado em Informtica Universidade do Minho!

35 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Ol mundo em JSF bean

Mestrado em Informtica Universidade do Minho!

36 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: backing beans

Uma app JSF tipica tem um ou mais backing bean!


-

JavaBeans associados ao componentes de IU da pgina" ao valor do componente (valor guardado no componente)" instncia do componente (valor guardado no bean)" validao" tratamento de eventos" navegao"

Propriedades so associadas"
-

Mtodos"
- - -

Utiliza-se a JavaServer Faces expression language (EL) #{} "


37 !

Mestrado em Informtica Universidade do Minho!

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Instance- vs. value-binding

Instance-binding!
- -

o backing bean pode modicar o componente" o backing bean pode instanciar componentes " maior separao entre modelo e vista" a pgina tem mais controlo sobre o componente" o backing bean no depende da API JSF" converses feitas automaticamente pela framework"

Value-binding"
- - - -

Tipicamente utiliza-se value-binding!


38 !

Mestrado em Informtica Universidade do Minho!

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Ol mundo em JSF JSP

Tags" Beans" Validators"

Mestrado em Informtica Universidade do Minho!

39 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Ol mundo em JSF Managed beans

faces-cong.xml"
- -

criao centralizada de beans" congurao das propriedades"

Mestrado em Informtica Universidade do Minho!

40 !

Engenharia de Aplicaes 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"


41 !

Mestrado em Informtica Universidade do Minho!

Engenharia de Aplicaes 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 Informtica Universidade do Minho!

42 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: standard HTML tag library

uri: http://java.sun.com/jsf/html"

Mestrado em Informtica Universidade do Minho!

43 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Tags

Mestrado em Informtica Universidade do Minho!

44 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Ol mundo em JSF Validao

faces-cong.xml v2"

Mestrado em Informtica Universidade do Minho!

45 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Ol mundo em JSF NameValidator

Mestrado em Informtica Universidade do Minho!

46 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: Validao (4+1)

componentes built-in!
-

DoubleRangeValidator; LongRangeValidator; LengthValidator"

ao nvel da app"
-

feita ao nvel da lgica de negcio" implementam a interface Validator" mtodos devem respeitar assinatura do mtodo validate da interface Validator " impedem valores nulos"

componentes custom"
-

mtodos de validao (nos backing beans)"


-

atributo required"
-

Mestrado em Informtica Universidade do Minho!

47 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Validao ao nvel da app

prs"
- - -

fcil implementao" sem necessidade de uma classe extra (c.f. custom)" sem necessidade de especicao na pgina"

contras"
- - -

reutilizao" manuteno" acontece aps as outras"

Mestrado em Informtica Universidade do Minho!

48 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: processamento de resquests

Mestrado em Informtica Universidade do Minho!

49 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: Navegao

Mestrado em Informtica Universidade do Minho!

50 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: Navegao

Mestrado em Informtica Universidade do Minho!

51 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: Regras de navegao

Mestrado em Informtica Universidade do Minho!

52 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: Regras de nevegao

regras default!

pattern matching! from-action"

Mestrado em Informtica Universidade do Minho!

53 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Vantagens de JavaServer Faces

Widgets mais poderosos (GUI controls)" Gesto de Eventos" Managed Beans! EL Expression Language! Converso e validao de inputs! Congurao centralizada" Encoraja MVC (consistncia!)"

Mestrado em Informtica Universidade do Minho!

54 !

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

Desvantagens de JavaServer Faces

Curva de aprendizagem"
-

projectos pequenos; prazos curtos, programadores inexperientes"

Documentao (inferior a JSP)" Maior opacidade na execuo"


-

debug; optimizaes" comparado com JSP"


MVC!"
55 !

Suporte ao desenvolvimento "


-

Rigidez da abordagem"

Mestrado em Informtica Universidade do Minho!

Engenharia de Aplicaes Sistemas Interactivos 2009/10!

JSF: links teis

Tag library"
-

http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/tlddocs/"

API"
-

http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/api/"

Documentation"
-

http://java.sun.com/javaee/javaserverfaces/reference/docs/"

Quick tutorial (with Eclipse)"


-

http://www.vogella.de/articles/JavaServerFaces/article.html"

Mestrado em Informtica Universidade do Minho!

56 !

Você também pode gostar