jsf 2.0 e scrumtoys

23
Globalcode – Open4education JSF 2.0 e ScrumToys Dr. Spock (Alberto Lemos) Profissional 1.5 Desenvolvedor/Instrutor Java Arquiteto Bacanão

Upload: dr-spock

Post on 02-Jul-2015

2.333 views

Category:

Education


2 download

DESCRIPTION

Palestra para o LinguÁgil 2009 em Salvador. Evento realizado entre os dias 12 e 14 de novembro de 2009 em Salvador. Palestra realizada no dia 14/11 das 17:20 às 18:10.

TRANSCRIPT

Page 1: JSF 2.0 e ScrumToys

Globalcode – Open4education

JSF 2.0 e ScrumToysDr. Spock (Alberto Lemos)

D

Profissional 1.5Desenvolvedor/Instrutor Java

Arquiteto Bacanão

Page 2: JSF 2.0 e ScrumToys

Globalcode – Open4education

Agenda

Sobre o JavaServer Faces Benefícios da tecnologia Deficiências na versão atual Principais Novidades do JSF 2.0 Demonstração do ScrumToys Perguntas & Respotas

Page 3: JSF 2.0 e ScrumToys

Globalcode – Open4education

O que é JavaServer Faces

Do mesmo criador do Struts; Paradigma de programação visual de User-interfaces

aplicado à web; É um framework que permite a criação de aplicações

Web com semântica de Swing implementando MVC; “Toolability = Ferramentabilidade” ; É uma especificação Java EE; Faces é mais fácil de aprender que outros frameworks; Faces é mais componentizado;

Page 4: JSF 2.0 e ScrumToys

Globalcode – Open4education

Benefícios

Diversas bibliotecas de componentes disponíveis; Suporte nas principais IDEs; Ampla literatura, treinamentos e foruns de

discussão; Integração com outras tecnologias e frameworks:

Spring, JPA, EJB, JBoss Seam Encapsula a complexidade do HTML, CSS e

JavaScript Oferece servicos fundamentais como conversores

e validadores;

Page 5: JSF 2.0 e ScrumToys

Globalcode – Open4education

JavaServer FacesP

ág

i na

JSF

faces-

con

f ig

.xm

l

Man

ag

ed

Bean

Page 6: JSF 2.0 e ScrumToys

Globalcode – Open4education

Demonstração

Page 7: JSF 2.0 e ScrumToys

Globalcode – Open4education

Deficiências na versão atual (JSF 1.2)

Não oferece Templates de tela “built in” Complexidade para criar componentes visuais Não permite criar Bookmarkble URLs Não suporta AJAX nativamente Incompatibilidade entre bibliotecas de

componentes Uso de JSP: Scriptlets, CustomTags, etc Muitas configurações em XML

Page 8: JSF 2.0 e ScrumToys

Globalcode – Open4education

Principais Novidades do JSF 2.0

Suporte a anotações para configuração Suporte a AJAX PDL baseado em XHTML (Facelets) e JSP PDL extensível Novo escopo para MBs: ViewScoped e

CustomScoped Bookmarkable URLs

Page 9: JSF 2.0 e ScrumToys

Globalcode – Open4education

Principais Novidades do JSF 2.0

Suporte a definição de estágio do projeto Mecanismo de Eventos Gerenciamento de Recursos Suporte a criação de componentes via XHTML Navegação implícita e condicional

Page 10: JSF 2.0 e ScrumToys

Globalcode – Open4education

Novas Anotações Suportadas@ManagedBean(name=”dashBoardBean”)@ManagedProperty(“#{taskManager}”)@RequestScoped@ViewScoped@SessionScoped@ApplicationScoped@CustomScoped@FacesConverter(forClass=Project.class)@FacesValidator

Page 11: JSF 2.0 e ScrumToys

Globalcode – Open4education

Suporte a AJAX

<h:commandButton id="btnDeleteSprint" styleClass="botaoPostIt" action="#{sprintManager.remove}" value="#{i18n['sprint.show.button.delete']} AJAX" onclick="jsf.ajax.request(this, event, {execute: 'frmListSprints', render: 'frmListSprints'}); return false;" />

Também suporta uma tag: <f:ajax>

Page 12: JSF 2.0 e ScrumToys

Globalcode – Open4education

PDL baseado em XHTML

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">

Incorpora o Facelets.

Não são necessárias configurações extras no web.xml.

Page 13: JSF 2.0 e ScrumToys

Globalcode – Open4education

Novo escopo: ViewScoped

No faces-config.xml: <managed-bean>

<managed-bean-name>dashboardMB</managed-bean-name>

<managed-bean-class>jsf.mb.DashboardMB</managed-bean-class>

<managed-bean-scope>view</managed-bean-scope>

</managed-bean>

No Managed Bean: @ManagedBean(name="dashboardManager")

@ViewScoped

public class DashboardMB implements Serializable {

...

}

Page 14: JSF 2.0 e ScrumToys

Globalcode – Open4education

Estágios do Projeto

Estágios suportados: Production, Development, UnitTest e SystemTest

No web.xml: <context-param>

<param-name>javax.faces.PROJECT_STAGE</param-name>

<param-value>Development</param-value>

</context-param>

Page 15: JSF 2.0 e ScrumToys

Globalcode – Open4education

Mecanismo de Eventos

Exemplos de código no ScrumToys:jsf2.demo.scrum.web.event.*jsf2.demo.scrum.web.controller.AbstractManager

Alguns eventos suportados:AfterAddToParentEventBeforeRenderEventViewMapCreatedEventViewMapDestroyEvent

Suporte a tag: <f:event type=”...” listener=”...” />

Page 16: JSF 2.0 e ScrumToys

Globalcode – Open4education

Gerenciamento de Recursos

Novas tags: <h:head>, <h:body>, <h:outputScript> e <h:outputStyle>

Acesso a recursos via EL: #{resouce[...]}...

<h:head> <title>#{dashboard2MB.name}</title> <h:outputStylesheet library="css/1_1" name="app.css"/> <h:outputScript library="javax.faces" name="ajax.js" target="head"/></h:head><h:body>... <h:form id="frmDashboard"> <img src="#{resource['images/exemplo.jpg']}" width="50px"/>...

Page 17: JSF 2.0 e ScrumToys

Globalcode – Open4education

Criação de Componentes

Exemplo de definição de Composite Component em:

/resources/components/postit.xhtml

Exemplo de uso do componente em:/dashboard/show.xhtml

Page 18: JSF 2.0 e ScrumToys

Globalcode – Open4education

NavegaçãoImplícita: <navigation-rule>

<from-view-id>/page1.xhtml</from-view-id>

<navigation-case>

<from-outcome>success</from-outcome>

<to-view-id>/page2.xhtml</to-view-id>

</navigation-case>

</navigation-rule>

Não é necessário! Bastar no MB retornar: “page2”.Condicional: <navigation-case>

<from-outcome>success</from-outcome>

<to-view-id>/page2.xhtml</to-view-id>

<if>#{foo.someCondition}</if>

</navigation-case>

Page 19: JSF 2.0 e ScrumToys

Globalcode – Open4education

JSF Scrum Demo

Aplicação para gestão de projetos, sprints, estórias e tarefas

Implementa o conceito de skins permitindo ao usuário trocar as cores da tela

JSF 2, JPA, Maven, Glassfish, JavaDB Implementa Bookmarkble URL Implementação de componentes compostos Open Source, parte do projeto Glassfish e agora

NetBeans Usa Beans Validation

Page 20: JSF 2.0 e ScrumToys

Globalcode – Open4education

Demonstração do ScrumToys

Page 21: JSF 2.0 e ScrumToys

Globalcode – Open4education

Perguntas & Respostas

Page 22: JSF 2.0 e ScrumToys

Globalcode – Open4education

Mais informações

Blog da Globalcode http://blog.globalcode.com.br/2009/10/jsf-20-e-scrumtoys.html

Blog do Spock http://blog.spock.com.br/

E-mail do Spock [email protected] [email protected]

Page 23: JSF 2.0 e ScrumToys

Globalcode – Open4education

Referências MC45 JavaServer Faces e Facelets: Um casamento perfeito http://www.globalcode.com.br/site/gratuitos/minicurso.seam?id=640

MC17 Introdução a JSF http://www.globalcode.com.br/site/gratuitos/minicurso.seam?id=362

MC27 Produtividade com JSF e EJB3 http://www.globalcode.com.br/site/gratuitos/minicurso.seam?id=428

MC31 Desenvolvendo um aplicativo completo com JSF, Facelets, Hibernate, AJAX e Design Patterns

http://www.globalcode.com.br/site/gratuitos/minicurso.seam?id=458