• Nenhum resultado encontrado

PROGRAMAÇÃO WEB II JAVA PARA WEB

N/A
N/A
Protected

Academic year: 2019

Share "PROGRAMAÇÃO WEB II JAVA PARA WEB"

Copied!
25
0
0

Texto

(1)

Prof. Wanderson Leandro de Oliveira wanderson.l.oliveira@anhaguera.com

PROGRAMAÇÃO WEB II

JAVA PARA WEB

(2)

Bibliografia

Padrão

• BROGDEN, Bill; MINNICK, Chris. Guia do Desenvolvedor Java - Desenvolvendo e - Commerce com Java Xml e Jsp. São Paulo: Makron Books, 2012.

Complementar

• GONÇALVES, Edson. Desenvolvendo Aplicações Web Com Jsp ,Servlets , Javaserver Faces , Hibernate , Ejb 3 Persistence. Gonçalves, Edson. Rio De Janeiro: Ciência Moderna, 2007.

• MELO, Alexandre Altair. Programação Java Para A Web . 2 ed. São Paulo: Novatec,2015.

(3)

JSF - Components

A especificação do JSF fornece um conjunto de

componentes

visuais

básicos

em

sua

implementação de referência.

Inclui duas bibliotecas de componentes básicos:

 Biblioteca “HTML” (sigla h): possui componentes que

representam diversos elementos HTML.

 Biblioteca “Core” (sigla f): responsável por tarefas

comuns no desenvolvimento de sistemas, como

internacionalização, validação e conversão de dados

(4)

JSF - Components

 Os principais componentes que a implementação de referência do JSF fornece são:

 Formulários

 Campos de entrada de texto

 Campo de entrada de senha

 Rótulos com textos

 Textos de uma única linha

 Links

 Botões

 Mensagens

 Painéis

 Tabela HTML

 Tabela de dados (grid)

(5)

JSF - Components

 Os principais componentes que a implementação de referência do JSF fornece são:

 Formulários

 Campos de entrada de texto

 Campo de entrada de senha

 Rótulos com textos

 Textos de uma única linha

 Links

 Botões

 Mensagens

 Painéis

 Tabela HTML

 Tabela de dados (grid)

(6)

JSF

Biblioteca HTML

 Declaração:

 <html xmlns:h=“http://java.sun.com/jsf/html”>

Tag Descrição

body Representa a tag <html> do HTML button Cria um link <input type=“button”>

column Coluna de dados em um <h:dataTable> commandButt

on

Gera um botão de submit ou reset

commandLink Gera um link. Precisa estar dentro de um <h:form> dataTable Representa uma tabela html

form Representa o formulário html graphicImage Representa a tag <img> do html head Representa a tag <head> do html

inputHidden Gera um campo invisível. Correspondente a <input type=“hidden”>

(7)

JSF

Biblioteca HTML

 continuação:

Tag Descrição

inputText Gera um campo de texto. Correspondente a <input type=“text”>

inputTextarea Gera um campo de texto multilinha. Correspondente a <textarea></textarea>

link Cria um link <a href> cujos parâmetros podem ser montados com as tags <f:param> aninhadas.

message Mostra o texto das mensagens de erro ou alerta associados ao componente messages Mostra todas as mensagens de erro geradas.

outputLabel Gera uma tag <label> que pode estar associada a um campo da tela. outputLink Gera um link html com a tag <a href>

outputText Gera em tela o texto especificado no atributo value.

panelGrid Permite montar um layout para a disposição de componentes

panelGroup Permite agrupar componentes para que sejam interpretados como um só por panelGrid.

selectBooleanCheckb ox

(8)

JSF

Biblioteca HTML

 continuação:

Tag Descrição

selectManyCheckB ox

Gera uma lista de componentes <input type=“checkbox”/> do html, com base em valores fornecidos pelas tags

<f:selectItem/> ou <f:selectItems/>

selectManyListbox Gera um componente <select> com várias linhas visíveis, no qual é possível selecionar vários itens ao mesmo tempo.

selectManyMenu Gera um componente <select> com apenas uma linha visível, no qual é possível selecionar vários itens ao mesmo tempo. selectOneListbox Gera um componente <select>, no qual é possível selecionar

apenas um item por vez.

(9)

JSF - Exemplo

<?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>

JSF 2.0 Hello World

</title> </h:head>

<h:body> <h3>

JSF 2.0 Hello World Example - hello.xhtml

</h3>

<h:form>

<h:inputText

value="#{helloBean.name}"

></h:inputText>

<h:commandButton

value="Welcome Me"

action="welcome"

></h:commandButton>

</h:form>

</h:body>

(10)

JSF

Passos Iniciais

Existem 4 passos básicos para iniciar o

desenvolvimento em JSF:

Criação da classe Bean

Mapeamento da classe Bean

Criação da página JSF

(11)

Passo 1: Criação da classe Bean

Bean

“Um

JavaBean normalmente é uma classe (poderia

ser mais de uma classe), mas uma classe não é

necessariamente um JavaBean.

É uma classe java que expõe propriedades e

eventos a um framework como o JSF. Por sua vez,

propriedade

é

um

valor

nomeado

de

um

(12)

Passo 1: Criação da classe Bean

Bean

Um

bean

tem

como

premissa

a

idéia

de

encapsulamento.

Assim sendo suas variáveis

devem obrigatoriamente serem acessadas através

de métodos.

Outra importante regra refere-se ao construtor. Ele

deve ser sem parâmetros.

Em

relação aos métodos,

eles podem

ser

(13)

Passo 1: Criação da classe Bean

Bean

As convenções adotadas para dar nomes aos métodos

de um Bean são:

 public TipoDaPropriedade getNomeDaPropriedade()

 Public void setNomeDaPropriedade(TipoDaPropriedade varName)

Em relação as variáveis booleanas vale o mesmo

conceito, com o uso da palavra is ao invés do get.

 public void setNomeDaPropriedade(Boolean varName)

(14)

Passo 1: Criação da classe Bean

Beans Gerenciados

Beans Gerenciados (Managed beans) são beans que

podem ser acessados a partir de uma página JSF

Devem ter um nome e um escopo.

São

“gerenciados”

no sentido de que quando o nome de

um bean ocorre em uma página JSF, a implementação

JSF localiza o objeto que possui esse nome, ou então o

(15)

Passo 1: Criação da classe Bean

Beans de apoio

 Em alguns casos é conveniente elaborar um bean com alguns

ou todos os objetos componentes de um formulário web. Um

bean deste tipo é conhecido como bean de apoio (Backing

bean).

 Necessário quando se deseja que validadores e

manipuladores de eventos tenham acesso aos componentes

de um formulário

 Quando se usa um backing bean é preciso conectar os

componentes do formulário àqueles existentes no bean

através do atributo binding. Ex:

(16)

Passo 1: Criação da classe Bean

Criação da classe Bean

Resumo

 Deve seguir os padrões já apresentados anteriormente.

 Fornecerá as informações exibidas na página e as operações

que serão executadas.

 Para que uma página JSF acesse uma propriedade de um

Bean, ela precisa ter um método de acesso get.

 Para que uma página JSF altere uma propriedade de um

Bean, ela precisa ter um método de modificação set.

 Os métodos desta classe definem as operações da página JSF.

Eles devem ser do tipo void, quando não for necessária

navegação na página JSF, ou deve retornar uma String que

(17)

Passo 1: Criação da classe Bean

JSF

Classe Bean: Exemplo

public classPessoa implementsjava.io.Serializable {

// atributos são declarados como private

private String nome;

private booleanfalecido;

// Construtor sem parâmetros

public Pessoa() { }

// getXxxx para acessar o valor do atributo

public String getNome() { return this.nome; }

// setXxxx para modificar o valor dos atributos

public void setNome(String nome) { this.nome = nome; }

// isXxxx para acessar atributos booleanos

public booleanisFalecido() { return this.falecido; }

// setXxxx para modificar atributos booleanos

(18)

Passo 1: Criação da classe Bean

Escopo Beans

Quando um bean é definido, deve-se definir o

escopo deste bean, ou seja, por quanto tempo

as informações do bean serão mantidas.

O JSF 2.0 dá suporte aos escopos:

Sessão

Requisição

Aplicação

Visão

(19)

Passo 1: Criação da classe Bean

Escopo de Sessão

Mantém um registro de uma sessão, ou seja, de

repetidas conexões feitas por um mesmo cliente.

Persiste

desde

o

momento

em

que

a

sessão

é

estabelecido até o seu término.

A sessão termina se a aplicação web invocar o método

invalidade no objeto HttpSession ou se ocorrer o fim do

tempo limite (timeout).

No JSF 2.0, este escopo pode ser definido com a

(20)

Passo 1: Criação da classe Bean

Escopo de Aplicação

Persiste durante toda a duração da aplicação web

Compartilhado por todas as requisições e por todas as

sessões

É construído com a primeira requisição da aplicação e

permanece ativo até a aplicação ser removida do

servidor de aplicações

No JSF 2.0, este escopo pode ser definido com a

anotação

@ApplicationScoped

do

pacote

(21)

Passo 1: Criação da classe Bean

Escopo de Requisição

Tem vida curta

Começa quando uma requisição HTTP é enviada e

termina quando a resposta é mandada de volta ao

cliente

Uma nova instância é criada a cada requisição

No JSF 2.0, este escopo pode ser definido com a

(22)

Passo 1: Criação da classe Bean

Escopo de Visão

 Adicionado no JSF 2.0

 Persiste enquanto a mesma página JSF é exibida novamente.

 Assim que o usuário navega para uma página diferente, o

bean fica fora do escopo.

 Se você tem uma página que continua sendo reapresentada,

então você pode colocar o bean que contêm os dados para

esta página no escopo visão, reduzindo assim o tamanho do

escopo de sessão. Isto é particularmente útil para aplicações

Ajax.

 No JSF 2.0, este escopo pode ser definido com a anotação

(23)

Passo 1: Criação da classe Bean

Escopo Personalizado

 Em última análise, um escopo é simplesmente um mapa que

liga nomes a objetos.

 Os tempos de vida dos 4 escopos padrão JSF (aplicação,

sessão, visão e requisição) são gerenciados pela aplicação

JSF.

 A partir do JSF 2.0, você pode definir um bean personalizado

com a anotação:@ CustomScoped ("# {expr}")

onde # {expr} produz o mapa escopo.

 Sua aplicação é responsável pela remoção de objetos do

(24)

Passo 1: Criação da classe Bean

Escopos de um Bean

 A tabela a seguir resume o que já foi discutido sobre os escopos:

Escopo Descrição

@ApplicationScoped Apenas uma instância da classe em toda a aplicação. Todos os usuários acessam a mesma instância.

@SessionScoped Existe uma instância para cada usuário

@RequestScoped Existe uma instância pelo tempo de duração da requisição feita pelo usuário

@NoneScoped Cada vez que houver uma chamada a uma propriedade ou método da classe Bean será criada uma nova

instância

@ViewScoped Armazena a instância da classe Bean na página exibida. Enquanto esta estiver sendo manipulada, a mesma

instância da classe Bean estará disponível @CustomScoped(value

(25)

Referências

Documentos relacionados

Fernandes, morador no lugar de Ourentã, termo da Vila de Cantanhede e de Francisco Afonso, morador no lugar de Fornos, termo da cidade de Coimbra, para fornecimento de

Na questão que abordou o conhecimento sobre a localização da doença, o deficiente saber quanto à percepção sobre a saúde bucal foi comprovado quando somente 30 indivíduos

Portanto, deve-se reconhecer que o tipo de movimento ortodôntico pode influenciar no risco de desenvolvimento de recessão óssea e gengival, como nos casos de movimento

REDES INSTALACAO E COMERCIO DE REDES

Climate change in coastal areas Consequences of climate change in sandy coasts, estuaries and lagoons, and rocky shores Changes on coastal risk as a result of climate change

Os psicólogos ajudam diariamente muitas pessoas de todas as ida- des e com todos os tipos de problemas que buscam os conhecimentos da psicologia para ajudá-las a terem uma melhor

Haveria agora algo que dizer -e haverá muito mais que estudar, pois não têm sido regiões que tenham merecido particular atenção por parte dos historiadores- sobre certas

• As páginas web contêm marcadores (tags) especiais para determinar o papel de cada elemento dentro do texto. Ex.: &lt;title&gt;