Introdução. <facelets> Templates. Configurações. Componentes. Prof. Enzo Seraphim



Documentos relacionados
JSF Facelets. Como Facelets muda a forma de desenvolver com JSF

JavaServer Faces (JSF) Leonardo Murta

Regras de Navegação e Templates

Introdução. Componentes básicos. Componentes avançados. PrimeFaces. Prof. Enzo Seraphim

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira

Técnicas e processos de produção. Profº Ritielle Souza

Primefaces 3. Laboratório Passo-a-Passo. JSF - Primefaces. Prof. Leandro Rubim de Freitas Versão 1.

Universidade da Beira Interior

#Aula Nº 4 XHTML+CSS webstandards.samus.com.br webstandards.samus.com.br/aulas/aula4.pdf Vinicius Fiorio Custódio samus@samus.com.

MÓDULO Programação para Web 2

TABLELESS E PROJETO ESTRUTURAL

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

Construindo portais com Plone. Módulo 3 Templates

Anotações e Navegação no JSF 2.0

Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007

Arcabouço para o desenvolvimento de aplicações Web com foco na construção da interface de usuário.

Conteúdo.

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Além do JSF: Matriz de Campos com Recursos e Práticas Incomuns

Aplicativos para Internet Aula 01

QUEM FEZ O TRABALHO?

JavaServer Faces. Parte 2

Curso de Aprendizado Industrial Desenvolvedor WEB

Orientada a serviços: JAX-WS SOAP API

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Managed Beans e Tags JSF

#Aula Nº 1 Introdução webstandards.samus.com.br Vinicius Fiorio Custódio samus@samus.com.br

MÓDULO Programação para Web 2

Programação II Programação para a Web. Christopher Burrows

Tecnologia WEB I. Prof. Erwin Alexander Uhlmann. Dos princípios do HTML, estruturação com CSS e automação com Javascript

Java II. Sérgio Luiz Ruivace Cerqueira

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto

PROGRAMAÇÃO WEB DO LADO DO CLIENTE

CSS é a abreviatura para Cascading Style Sheets Folhas de Estilo em Cascata

Scriptlets e Formulários

TUTORIAL JSP & SERVLET

Web Design. Prof. Felippe

USANDO APPLETS NO NETBEANS (WEB APPLICATION)...E A APPLET CHAMA ALGUM PACOTE EXTERNO (por Luis Alberto M Palhares de Melo Julho/2011)

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR $,'(GR5HSRUW0DQDJHU

Roteiro de Estudos e Atividades Avaliativas HTML

Roteiro 2: Conceitos de Tags HTML

Definindo um Layout de Website sem Tabelas Vou apresentar nesse post como fazer o código do layout de um website sem utilizar

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Tutorial Módulo 01 Arquitetura Anexo I. Tutorial Módulo 01 Arquitetura Anexo I. LABORATÓRIO 01 Arquitetura e Configuração

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto


Introdução ao PHP. Prof. Késsia Marchi

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

O que há de novo. Audaces Idea

JSF. Versão 1.0. Apostila destinada ao curso com carga horária de 32 (trinta e duas) horas

Java para WEB. Servlets

FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Introdução a JavaServer Pages. Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de sistemas web

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

Desenvolvendo uma aplicação Java EE 6 com Eclipse (parte 3)

Introdução. História. Como funciona

Conteúdo Programático de PHP

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

Escola Superior de Tecnologia de Setúbal. Projecto Final

Minicurso introdutório de desenvolvimento para dispositivos Android. Cristiano Costa

HTML templates e PHP. Um ficheiro PHP é um documento HTML com código PHP embebido. Tem vantagens mas também tem desvantagens

Iniciação à Informática

Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010.

Declaração do tipo de documento. Ana Cuper

Aplicação para Web I. Começando a compreender o HTML

JavaScript. Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 03,

19/05/2009. Módulo 1

Série Rações Semanais Namespaces e DOM/SAX Rogério Araújo

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Introdução ao HTML 5 e Implementação de Documentos

Aula 03 - Projeto Java Web

Introdução à Tecnologia Web

1. Introdução. 2. A área de trabalho

CAPÍTULO 35 Como utilizar os componentes ColdFusion

#Fundamentos de uma página web

Prof. Roberto Desenvolvimento Web Avançado

TECNOLOGIAS WEB AULA 5 PROF. RAFAEL DIAS

Pedido de Bar Sistema para controle de pedido de bar

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Introdução à Engenharia da Computação. Tecnologia Web Professor Machado

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Declaração DOCTYPE e Tag Raiz html

Organizar a estrutura do site

O Microsoft Office é composto por diversos softwares, dentre eles o Word, o Excel, o Access e o Power Point.

ARQUITETURA DO SISTEMA ERP PEGASUS

PROJETO INTEGRADOR. Documentação. Aplicação de Controle de Acesso FACULDADE DE TECNOLOGIA SENAC GOIÁS. Programação com Frameworks

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

mhtml:file://d:\utfpr\2009-2\especialização Java\Materiais de Aula\02 - JSF\Estud...

Servlets & JSP. Prof. Ramon Chiara

Transcrição:

Introdução Templates <facelets> Configurações Componentes Prof. Enzo Seraphim

Definição Linguagem de descrição de páginas (PDL Page Description Language) criada para JSF. Estabelece templates que suportam a criação da árvore de componentes das telas JSF Permite reuso de padrões de telas composição de componentes JSF para formar novos componentes.

Problemas com JSP Inicialmente JSF utilizava JSP para criar páginas (padrão na comunidade web) JSP usado para criar conteúdo estático ou dinâmico na web JSF trabalha com componentes em árvores: Elementos tem objetivo fundamental de criar uma resposta a um pedido. Geração do componente e a sua renderização fases separadas.

Porque usar Facelets Facelets não dependem de um container web (embora seja usado) Fornece templating, tornando possível reutilizar o código Criação de componentes leves 30% à 40% mais rápido Suporte em tempo de compilação de: Unified Expression Language (EL); funções EL; e validação EL. Fornece um relatório preciso de erros, (linha onde ocorre a exceção)

Introdução Templates <facelets> Configurações Componentes Prof. Enzo Seraphim

O que são templates? Aplicação Web várias páginas têm estrutura semelhante utilizando um modelos de páginas (templates). Template define um desenho padrão das telas e áreas substituíveis para a troca de conteúdo durante a renderização da interface. Templates permitem a reutilização de código, reduzindo o tempo de desenvolvimento e os custos de manutenção de uma aplicação.

Definição Templates definem diferentes áreas onde o conteúdo pode ser substituído usando: <ui:insert> O conteúdo a ser usado nesses locais, é definido pelo cliente do template usando <ui:component>, <ui:composition>, <ui:fragment>, ou <ui:decorate>.

Níveis de Templates Templates em Facelets não é limitado a apenas um nível. Multiníveis, onde um cliente pode ser um template para outros clientes. Dessa maneira, templates possibilitam o reuso e facilitam a manutenção do layout e padrão visual das interfaces web.

Introdução Templates <facelets> Configurações Componentes Prof. Enzo Seraphim

Configuração Biblioteca FileUpload Commons da Apache: Adiciona a capacidade de upload de arquivo para seus servlets e aplicações web com alto desempenho. http://commons.apache.org/proper/common s fileupload/download_fileupload.cgi Adicionar em bibliotecas do projeto criar subdiretório lib adicionar commons fileupload.jar

Introdução Templates <facelets> Configurações Componentes Prof. Enzo Seraphim

Namespace Facelets Namespace a página JSF: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> Componentes: <ui:composition> <ui:component> <ui:debug> <ui:decorate> <ui:define> <ui:fragment> <ui:include> <ui:insert> <ui:param>

Conceitos Tags Facelets podem ser agrupadas em 2 categorias principais: Inclusão de conteúdo de outras páginas XHTML (ui:include) Construção de páginas a partir de templates (ui:composition, ui:decorate, ui:insert, ui:define, ui:param) Para utilizar tags Facelets adicione a namespace a página JSF: xmlns:ui="http://java.sun.com/jsf/facelets"

ui:insert Demarca área substituível do template. Toda área substituível deve ter um nome. Geralmente demarca onde será, o menu, o topo, o corpo do sistema. Usada na definição do template

<?xml version='1.0' encoding='utf 8'?> <facelets> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <meta http equiv="content Type"content="text/html; charset=utf 8"/> <title>facelets Template</title> <style type="text/css">.stylemenu { background color: yellow; width: 30%; margin: 0; padding: 0; float: left; }.stylecorpo { background color: red; width: 70%; float: right; text align: center; } </style> </h:head> <h:body> <div class="stylemenu"> <ui:insert name="menu">menu original</ui:insert> </div> <div class="stylecorpo"> <ui:insert name="corpo">corpo original do template</ui:insert> </div> </h:body> </html> template.xhtml

Geração de Template JavaServer Faces Modelo de Facelets

ui:composition/ui:define Utilizadas nas páginas que utilizam o template ui:composition compor páginas que utilizam a tecnologia Facelets. ui:define define um conteúdo da página (que utiliza o template) para uma área substituível de um template ui:define é correspondente a um ui:insert do template. nomes devem coincidir com os nomes utilizados nas tags <ui:insert> do template.

ui:composition/ui:define template.xhtml demarcada pelos ui:insert index.xhtml composição baseado no template.xhtml Define que <ui:insert name="corpo"> terá o texto isso é do clientetemplate index.xhtml <?xml version='1.0' encoding='utf 8'?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"> <ui:composition template="template.xhtml"> <ui:define name="corpo"> isso é do clientetemplate </ui:define> </ui:composition> </html>

Geração Cliente para Template JavaServer Faces Cliente de Modelos de Facelets

ui:decorate Igual ui:compositon, com diferença: ui:composition tudo que fora desta tag, é ignorada (não aparece). ui:decorate tudo que for feito fora desta tag é visualizada normalmente index.xhtml <?xml version='1.0' encoding='utf 8'?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"> <ui:decorate template="template.xhtml"> <ui:define name="corpo"> isso é do clientetemplate </ui:define> </ui:decorate> Isso aqui não vai aparecer no composition </html>

<ui:debug> Janela pop-up: o componente da árvore e o escopo das variáveis. Ctrl + Shift + <tecla atalho> ui:debug deve estar dentro h:body index.xhtml... <h:body> <ui:debug hotkey="x" /> <div class="stylemenu"> <ui:insert name="menu">menu original </ui:insert> </div> <div class="stylecorpo"> <ui:insert name="corpo">corpo original do template </ui:insert> </div> </h:body>

ui:include Serve para incluir páginas dentro de outras páginas Igual ao include do PHP Util quando o código fonte da página fica muito extenso Separação do conteúdo em outra páginas, será adicionada à uma única página. Para a visualização irá renderizar como uma única página. Página menores podem ajudar a hora da manutenção.

ui:fragment Tem o mesmo comportamento <ui:decorate>, porém cria uma nova instância de componente (UIComponent) para cada componente ou fragmento contido na tag Usada em páginas que serão incluídas pelo ui:include

ui:include/ui:fragment frag.xhtml include.xhtml <?xml version='1.0' encoding='utf 8'?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <ui:fragment xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:outputtext value="texto da página fragteste"/> </ui:fragment> <?xml version='1.0' encoding='utf 8'?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"> <f:view contenttype="text/html"> <h:head> <title>include fragment</title> </h:head> <h:body> <h:outputtext value="texto da página include!"/><br/> <ui:include src="frag.xhtml" /> </h:body> </f:view> </html>

ui:remove Remove um código que é inserido dentro dela Tudo que estiver dentro desse tag não será visualizado remove.xhtml <?xml version='1.0' encoding='utf 8'?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head> <title>remove</title> </h:head> <h:body> <h:outputtext value="aparece na pagina"/> <ui:remove> <h:outputtext value="não aparece na página"/> </ui:remove> </h:body> </html>

ui:repeat Funciona como um laço de repetição para ler valores de uma lista de um bean BandeiraBean.java @Named(value = "bandeirabean") @RequestScoped public class BandeiraBean { private String cores[] = {"verde", "amarelo", "azul", "branco"}; public String[] getcores() { return cores; } public void setcores(string[] cores) { this.cores = cores; } }

ui:repeat repeat.xhtml <?xml version='1.0' encoding='utf 8'?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head> <title>repeat</title> </h:head> <h:body> <ui:repeat var="cor" value="#{bandeirabean.cores}"> <h:outputtext value="#{cor}" /><br /> </ui:repeat> </h:body> </html>

ui:param Permite passar parâmetros para outro Facelet incluído em uma tela através da tag <ui:include>. O parâmetro pode ser valor estático valor dinâmico (vindo de um bean) Pode conter uma string ou objeto.

ui:param O parâmetro será capturado usando a EL #{nome} param1.xhtml <?xml version='1.0' encoding='utf 8'?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head> <title>param</title> </h:head> <h:body> <ui:param name="nome" value="jose da Silva" /> <h:form> <h:commandbutton value="enviar parametro" action="param2" /> </h:form> </h:body> </html>

ui:param O parâmetro será capturado usando a EL #{nome} param2.xhtml <?xml version='1.0' encoding='utf 8'?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>param</title> </h:head> <h:body> <h:outputtext value="parâmetro recebido: #{nome}" /> </h:body> </html>

Os logotipos, marcas comerciais e nomes de produtos citados nesta publicação tem apenas o propósitos de identificação e podem ser marcas registradas de suas respectivas companhias. <facelets> Prof. Enzo Seraphim