• Nenhum resultado encontrado

Regras de Navegação e Templates

N/A
N/A
Protected

Academic year: 2021

Share "Regras de Navegação e Templates"

Copied!
11
0
0

Texto

(1)

1 Universidade Positivo

Paulo Ricardo Lisboa de Almeida

Regras de Navegação e Templates

Primeiras páginas

(2)

2 Universidade Positivo

Instanciando a aplicação

Clone o projeto da aula com o Git (disponível no site da disciplina)

Suba o banco de dados

Crie as tabelas e rode o script de inserts

Utilize o tutorial disponível no site da disciplina Inicialize o Eclipse e importe o Projeto

(3)

3 Universidade Positivo

Regras de navegação

Desejamos redirecionar o usuário para determinada página após alguma ação

(4)

4 Universidade Positivo

Regras de Navegação

Os métodos chamados por um botão da tela podem retornar uma String

Essa string será utilizada como “hash” de navegação

public class LoginMB { // ...

public String login() {

try{

if(cpf == 1) {//loga somente se digitarmos 1

Funcionario f = new Funcionario();

f.setCpf(cpf); // esse funcionário não existe no banco! Esse é somente um teste

f.setDataAdmissao(new Date());

f.setId(1L);

f.setNascimento(new Date());

f.setNome("Funcionário teste");

f.setTipoFuncionario(new TipoFuncionario());

userMB.setFuncionario(f);

return "index"; }else {

JSFMessageUtil.sendWarningMessageToUser("Login incorreto!"); }

}catch(Exception e){

e.printStackTrace();//LOGAR!

JSFMessageUtil.sendWarningMessageToUser("Ocorreu um erro na aplicação!"); }

return null; }

// ... }

(5)

5 Universidade Positivo

No faces-Config

Adicionamos as regras de navegação no faces-config // ...

<!-- ManagedBeans -->

<managed-bean>

<managed-bean-name>loginMB</managed-bean-name>

<managed-bean-class>com.up.clinicaveterinaria.mb.LoginMB</managed-bean-class>

<managed-bean-scope>request</managed-bean-scope>

<managed-property>

<property-name>userMB</property-name><!-- injetar o bean userMB na propriedade userMB do bean loginMB -->

<property-class>com.up.clinicaveterinaria.mb.UserMB</property-class>

<value>#{userMB}</value>

</managed-property> </managed-bean>

<managed-bean>

<managed-bean-name>userMB</managed-bean-name>

<managed-bean-class>com.up.clinicaveterinaria.mb.UserMB</managed-bean-class>

<managed-bean-scope>session</managed-bean-scope> </managed-bean> <!-- Fim ManagedBeans --> <!-- Regras de Navegação --> <navigation-rule> <from-view-id>*</from-view-id> <navigation-case>

<from-outcome>index</from-outcome>

<to-view-id>/pages/index.xhtml</to-view-id> <redirect />

</navigation-case> </navigation-rule>

<!-- Fim Regras de Navegação → // ...

(6)

6 Universidade Positivo

Regras de Nevagação

From-view-id → a partir de qual view a regra é válida * significa todas

From-outcome → qual a string que gera esse redirecionamento

No exemplo é a string index

To-view-id → qual é a página que deve ser renderizada Temos aqui um “controller”

(7)

7 Universidade Positivo

Teste

Suba a aplicação e teste o resultado

Note que se digitarmos o cpf válido (no caso 1) somos redirecionados para index.html

Perceba também que não temos segurança alguma no momento

Se o usuário digitar o endereço completo da página de index, ele consegue acessar mesmo sem ter logado

localhost:8080/clinicavet/pages/index.xhtml

Um erro absurdo, mas que muitas aplicações comentem

Nas próximas aulas esse problema será corrigido através de filtros

(8)

8 Universidade Positivo

Criando um modelo padrão para as páginas

Insira o arquivo template.xhtml disponível na página da disciplina no diretório pages

Esse template define um modelo que todas páginas devem seguir, exceto a de login

Todas páginas na nossa aplicação terão acesso a um menu principal

Note a tag <ui:insert name="main" />

Isso define que as páginas baseadas no template devem definir uma subpágina em um componente chamado main

(9)

9 Universidade Positivo

A página de index

A página index.xhtml então fica

Utilizamos ui:composition

Passamos qual a página estamos componto (template) ui:define

Define qual o conteúdo será inserido dentro de main, definido no template

<!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" xmlns:f="http://java.sun.com/jsf/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:p="http://primefaces.org/ui"> <h:body>

<ui:composition template="/pages/template.xhtml"> <ui:define name="main">

<div> Olá mundo! </div> </ui:define> </ui:composition> </h:body> </html>

(10)

10 Universidade Positivo

Fim

Pesquise sobre os demais componentes que podemos utilizar

(11)

11 Universidade Positivo

Referências

MANN, K. Java Server Faces In Action. Dreamtech Press, 2005. ISBN 9788177224191.

ZAMBON, G. Beginning JSP, JSF and Tomcat: Java Web Development. Apress, 2012. (Expert’s voice in Java). ISBN 9781430246237.

Documentação Oracle

Referências

Documentos relacionados

A respeito das propostas de desregulamentação nas relações de trabalho e da seguridade social no Brasil, percebidas tanto nas defesas do Banco Mundial quanto nas

Se você suspeitar que cloridrato de dorzolamida está causando uma reação alérgica (por exemplo, lesões na pele ou prurido), interrompa o tratamento e entre em contato imediatamente

Neste presente estudo foi aplicado um questionário sobre a aceitação de um dos seus detergentes comparado a dois concorrentes utilizando a escala ideal , além

- “Não vale a pena dizer nada, não “Não vale a pena dizer nada, não se ganha nada com isso”.. se ganha nada

- Remover as pastilhas usadas e retornar todo o parafuso de regulagem em seguida montar uma pastilha nova do lado da roda, empurrando com a mão a pinça no sentido do cilindro de

Feitiço do Segredo: deposita um segredo numa pessoa de confiança, essa pessoa fica deposita um segredo numa pessoa de confiança, essa pessoa fica sendo o &#34;Fiel do sendo o

Graças damos a Deus, Pai de nosso Senhor Jesus Cristo, orando sempre por vós, desde que ouvimos falar da vossa fé em Cristo Jesus, e do amor que tendes a todos os santos, por causa da

Rogers 1982 Interlivros 274 Os Testamentos Traídos Milan Kundera 1993 Nova Fronteira 275 Tripulção de Esqueletos Stephen King 1987 Francisco Alves. 276 Raça da Noite Clive Barker