JSP Standard Tag Library (JSTL)

Documentos relacionados
JSP Standard Tag Library (JSTL)

JSP Standard Tag Library (JSTL)

<%= request.getattribute( nome ) %> Se nome for uma instância de Cliente. <%= request.getattribute( nome ) %>

J550 Tag Libraries e JSTL

Java para WEB JSTL. JavaServer Pages Standard Tag Library

O que é uma tag Tag tag tag tag tag tags tags HTML O que é uma tag library biblioteca de tags tags Java Standard Tag Library JSTL Tag Library JSTL

Servlets & JSP. Prof. Ramon Chiara

JSTL: facilitando o JSP. Fernando Boaglio

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

Programação para Internet II

Java II. Sérgio Luiz Ruivace Cerqueira

Java para Desenvolvimento Web

AULA 12 JSTL. Prof. André Luis Schwerz.

Programação para Internet II

Linguagem de Expressão, JSTL e DisplayTag. Fornece tags para encapsular funcionalidades complexas para utilização em JSPs

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

CONTEÚDO PROGRAMÁTICO

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta

DESENVOLVENDO APLICAÇÕES WEB COM JSP E JSTL. Peter Jandl Junior. Novatec

Java II. Sérgio Luiz Ruivace Cerqueira

Java JSTL. Rodrigo C. de Azevedo

Formação JAVA Web.

Programando em JSTL-JSP Standard Tag Library

Objetivos. Aprender o que são JavaBeans e como podem ser usados em páginas JSPs Usando ações-padrão ao invés de scripts

(UFF) JSF (I) TEPIS II

Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV1-01. Luiz Leão

Desenvolvimento Web TCC Turma A-1

J550 JSP com tags padrão

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB

Desenvolvimento Web III. Prof. Felippe Scheidt

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

Unidade 6: Java Server Pages Prof. Daniel Caetano

Java 2 Enterprise Edition Construção de Aplicações Web

Engenharia de Aplicações Sistemas Interactivos 2009/10! JAVASERVER FACES 1.2. Mestrado em Informática Universidade do Minho! 31!

Associação Carioca de Ensino Superior Centro Universitário Carioca

Introdução ao Javascript

Desenvolvimento Web com Java. Sérgio Lopes Caelum -

JavaScript (Elementos de Programação e Programação Básica)

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

Web Presentation Patterns - Controllers

Java para WEB com Struts 2 e Hibernate

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago

JSP (Java Server Pages)

AJAX (Asynchronous Javascript And XML)

Programação Web Aula 12 - Java Web Software

Módulo: PYTHON. Felipe Oliveira

Desenvolvimento de Sistemas para WEB Site:

Java para Web & EJB. Teoria, prática e questões Módulo Introdução e Servlets

J820. Testes em J2EE com. Jakarta C A C T U S. argonavis.com.br. Helder da Rocha

Introdução ao Desenvolvimento de

Aplicações de Linguagem de Programação Orientada a Objeto

Continuação... Criando a Interface e adiante

Continuação... Criando a Interface e adiante

UNIDADE III JAVA SERVER PAGES

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

DESENVOLVIMENTO DE SISTEMAS WEB UNIDADE I Criação de Aplicativos Web. Luiz Leão

JSP (Java Server Pages)

Aplicações Web com Servlets e JSP

Java para WEB. Servlets

JAVA. Professor: Bruno Toledo

1.2- Ambientes de Middleware

Professor Jefferson Chaves Jefferson de Oliveira Chaves

Linguagem de Programação III - PHP

JavaScript Introdução e Sintaxe

ALUNO: RONI FABIO BANASZEWSKI

Programação para Internet Flávio de Oliveira Silva, M.Sc.

Construção de Sites 2. Prof. Christiano Lima Santos

4. Constantes. Constantes pré-definidas

Programação I Estruturas de Decisão

Tecnologias Web. Java Enterprise Edition

Desenvolvimento Web. JavaScript aula II variáveis (cont.) e diálogos. Professor: Bruno Gomes

Oracle Objeto-Relacional. Pablo Vieira Florentino

Laboratório 8 JSP s, EL, JSTL

Java para Desenvolvimento Web Carga Horária: 40 Horas.

Folha 4.2 Análise sintática ascendente

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

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

Curso de PHP. FATEC - Jundiaí

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Programação para Internet Flávio de Oliveira Silva, M.Sc.

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Academia Java PA JAVA: Programação Avançada em Java (30 horas)

Treinamento. Professor: Maurício Giacomini Penteado 1/42

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

JavaScript (ou JScript)

A figura acima mostra o script de criação do banco de dados que chamaremos de minicurso.

Apostila - Desenvolvimento web com PHP

Desenvolvimento Web II

PHP Básico Módulo I. Carga Horária: 32 horas. Conteúdo: Conceitos Básicos Introdução; Características; Scripts;

Transcrição:

JSP JSTL

JSP Standard Tag Library (JSTL) Esforço de padronização do JCP: JSR-152 Baseado no Jakarta Taglibs (porém bem menor) Oferece dois recursos Conjunto padrão de tags básicos (Core, XML, banco de dados e internacionalização) Linguagem de expressões do JSP 1.3 Oferece mais controle ao autor de páginas sem necessariamente aumentar a complexidade Controle sobre dados sem precisar escrever scripts Estimula a separação da apresentação e lógica Estimula o investimento em soluções MVC

Como usar JSTL Incluir em cada página que usa os tags: <%@ taglib uri="uri_da_taglib" prefix="prefixo" %> Usar os tags da biblioteca com o prefixo definido no passo anterior <prefixo:nometag atributo="...">... </prefixo:nometag>

Cinco bibliotecas de tags Core library: tags para condicionais, iterações, urls,... <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Exemplo: <c:if test="..."... >...</c:if> XML library: tags para processamento XML <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> Exemplo: <x:parse>...</x:parse> Internationalization library <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> Exemplo: <fmt:message key="..." /> SQL library <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> Exemplo: <sql:update>...</sql:update> Function library <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> Exemplo: ${fn:length(...)}

Linguagem de expressões (EL) Permite embutir em atributos expressões dentro de delimitadores ${...} Em vez de request.getattribute("nome") ${nome} Em vez de bean.getpessoa().getnome() ${bean.pessoa.nome} Suporta operadores aritméticos, relacionais e binários Converte tipos automaticamente <tag item="${request.valornumerico}" /> Valores default <tag value="${abc.def}" default="todos" />

Linguagem de expressões (EL) A primeira variável na expressão é um OBJETO IMPLÍCITO ou um ATRIBUTO $ { primeiro.segundo) Objetos: pagescope, requestscope, sessioscope,applicationscope param, paramvalues header, headervalues cookie initparam pageconext Atributo: Único que não é mapeamento (Map); é um bean Em qualquer um dos escopos: page, request, session, application

Linguagem de expressões (EL) Se a expressão possuir um avariável seguida por um ponto, a variável a esquerda TEM QUE ser um MAP ou um BEAN O que estiver do lado direito do ponto TEM QUE ser uma chave de MAP ou uma propriedade do BEAN Deve seguir regras normais do Java para nomenclatura dos identificadores Operador [] é similar ao ponto, mas melhor ${pessoa[ nome ]} idem a ${pessoa.nome} Se pessoa for List ou Array? Só funciona com [] : ${listmusic[ Take ] } ou ${listmusic[0]} O que vem dentro dos colchetes é uma String: Chave Map Propriedade Bean Índice de um List ou Array

Principais ações Suporte à impressão da linguagem expressões <c:out value="${pessoa.nome}" /> Expressões condicionais <c:if test="${pessoa.idade >= 18}"> <a href="adultos.html">entrar</a> </c:if> <c:choose> <c:when test="${dia.hora == 13}"> <c:out value="${mensagemespecial}" /> </c:when> <c:otherwise> <c:out value="${mensagempadrao}" /> </c:otherwise> </c:choose> Iteração <c:foreach items="${pessoas}" var="p" varstatus="s"> <c:out value="${s.count}"/>. <c:out value="${p}"/> </c:foreach>

PageContext Objeto que permite a tag acessar informações sobre o contexto da aplicação para leitura de valores de formularios (request), variaveis de sessao e gerar conteudo de saida (response)

PageContext Acesso facil a parametros de entrada vindos de get/post, variaveis de sessoes e cookies $session:minhavariaveldesessao $cookie:meucookie $param:email $param:nome Dados vindos de forms

set Atribui valor a uma variável Sintaxe 1 <c:set value="valor" var= nomevariavel [scope= {page request session application} ] /> Sintaxe 2 <c:set var= nomevariavel [scope= {page request session application} ]> Corpo do Conteúdo </c:set>

Exemplo <c:set var="nome" value="${param.nome}" /> Olá ${nome} <c:set var="nome"> ${param.nome} </c:set> Olá ${nome}

remove Remove uma variável <c:remove var="nomevar" [scope="{page...}"]/> Se o escopo for omitido a variável é removida do escopo mais interno Exemplo <c:remove var="nome" scope="page" />

out Avalia e exibe uma expressão Sintaxe <c:out value="valor [escapexml="{true false}"] [default="valordefault"] /> Exemplo Olá <c:out value="${nome}" />

if Avalia o conteúdo se a condição for verdadeira <c:if test="condição"> Conteúdo </c:if> Exemplo <c:if test="${usuario.visitas eq 1}"> Esta é a sua Primeira Visita. </c:if>

choose... when... otherwise Avalia várias condições semelhante a um if aninhado de Java <c:choose> <c:when test="condição"> </c:when>... <c:otherwise> </c:otherwise> </c:choose>

Exemplo Situação Parcial: <c:choose> <c:when test="${nota lt 30}"> Reprovado </c:when> <c:when test="${nota lt 70}"> Recuperação </c:when> <c:otherwise> Aprovado </c:othewise> </c:choose>

Exemplo : choose = if... else Situação Final: <c:choose> <c:when test="${nota lt 70}"> Reprovado </c:when> <c:otherwise> Aprovado </c:otherwise> </c:choose>

foreach (1/2) Percorre uma coleção (lista, array ou mapeamento) de objetos <c:foreach var= variavel itens= colecao varstatus= variavelstatus /> conteúdo </c:foreach>

Exemplo foreach Exemplo: <c:foreach var= livro itens= ${livros} varstatus= status /> ${status.count} ${livro.titulo} </c:foreach> 1 - Java Como Programar 2 - Java Servlets 3 - HTML & XHTML

foreach (2/2) Laço com início e fim <c:foreach var= variavel begin= inicio end= fim step= passo varstatus= variavelstatus /> conteúdo </c:foreach>

Construindo uma Tabela <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head><title>função Quadrado</title></head> <body> <table border="1"> <tr><th>x</th><th>x^2</th></tr> <c:foreach var="counter" begin="1" end="10"> <tr> <td>${counter}</td> <td>${counter*counter}</td> </tr> </c:foreach> </table> </body> </html>

fortokens Semelhante ao foreach mas os elementos estão em um único String. <c:fortokens items="stringoftokens" delims="delimitadores" [var= nomevar"] [varstatus= nomevarstatus"] [begin= inicio"] [end= fim"] [step= passo"]> Conteúdo </c:fortokens>

Exemplo Imprimir as letras do string "a,b/c,d/e,f" onde, e / são delimitadores <c:fortokens items="a,b/c,d/e,f" delims=",/" var= letra"> <p>${letra}</p> </c:fortokens>

Arquitetura de Sistemas Web

Modelo 2 Camadas Camada de Apresentação com Regras de Negócio Juntas. Camada de Persistência. Problemas para o usuário, que não tem os programas funcionando como deveriam; Problemas para a equipe de desenvolvimento que não tem o seu trabalho reconhecido e, normalmente, tem que trabalhar apenas "apagando incêndios"; e Problemas para a Administração/Gerência da rede que não consegue gerar os resultados esperados pela Administração da empresa, apesar dos elevados valores já investidos. Maior TCO Custo Total de Propriedade

Modelo 2 Camadas

Modelo 3 Camadas Modelo e códigos construídos para representar as camadas. Os servidores não precisam estar necessariamente em máquinas diferentes, podem estar na mesma máquina. Porem questões de performance são relevantes. Camada de Apresentação Camada de Negócios Camada de Persistência

Modelo 3 Camadas

Modelo 3 Camadas c/ MVC APRESENTAÇÃO NEGÓCIO OU LÓGICA PERSISTÊNCIA (INTEGRAÇÃO) Helper classes C NAVEGADOR WEB V M SGDB CLIENTE CLIENTE - SERVIDOR SERVIDOR SERVIDOR WEB

MVC - FLUXOS

MVC

Modelo 4 Camadas

Modelo 4 Camadas CLIENTE (APRESENTAÇÃO) GERENCIA DE APRESENTAÇÃO NEGÓCIO PERSISTÊNCIA NAVEGADOR WEB SERVIDOR WEB SERVIDOR APLICAÇÃO EJB in MVC SGDB V C M CLIENTE CLIENTE - SERVIDOR CLIENTE - SERVIDOR SERVIDOR

J2EE - 4 TIER