jsf 2.0 e scrumtoys

Post on 02-Jul-2015

2.333 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

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

Globalcode – Open4education

JSF 2.0 e ScrumToysDr. Spock (Alberto Lemos)

D

Profissional 1.5Desenvolvedor/Instrutor Java

Arquiteto Bacanão

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

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;

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;

Globalcode – Open4education

JavaServer FacesP

ág

i na

JSF

faces-

con

f ig

.xm

l

Man

ag

ed

Bean

Globalcode – Open4education

Demonstração

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

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

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

Globalcode – Open4education

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

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>

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.

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 {

...

}

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>

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=”...” />

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

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

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>

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

Globalcode – Open4education

Demonstração do ScrumToys

Globalcode – Open4education

Perguntas & Respostas

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 spock@globalcode.com.br blog@spock.com.br

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

top related