JSP Standard Tag Library (JSTL)

Documentos relacionados
JSP Standard Tag Library (JSTL)

J550 Tag Libraries e JSTL

Java para WEB JSTL. JavaServer Pages Standard Tag Library

JSTL: facilitando o JSP. Fernando Boaglio

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

Servlets & JSP. Prof. Ramon Chiara

Java II. Sérgio Luiz Ruivace Cerqueira

Programação para Internet II

Java para Desenvolvimento Web

AULA 12 JSTL. Prof. André Luis Schwerz.

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

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta

CONTEÚDO PROGRAMÁTICO

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

Java JSTL. Rodrigo C. de Azevedo

Java II. Sérgio Luiz Ruivace Cerqueira

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

Formação JAVA Web.

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

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

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

Desenvolvimento Web TCC Turma A-1

Unidade 6: Java Server Pages Prof. Daniel Caetano

Desenvolvimento Web com Java. Sérgio Lopes Caelum -

Desenvolvimento Web III. Prof. Felippe Scheidt

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

Java para WEB com Struts 2 e Hibernate

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

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

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

Desenvolvimento de Sistemas para WEB Site:

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

Introdução ao Javascript

Programação Web Aula 12 - Java Web Software

JSP (Java Server Pages)

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

AJAX (Asynchronous Javascript And XML)

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

JAVA. Professor: Bruno Toledo

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

JavaScript Introdução e Sintaxe

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

JSP (Java Server Pages)

Laboratório 8 JSP s, EL, JSTL

UNIDADE III JAVA SERVER PAGES

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

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

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

Java para WEB. Servlets

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

Comando de Seleção em Java

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Módulo: PYTHON. Felipe Oliveira

Tutorial Jogo da Velha WEB

XSL - extemsible Stylesheet Language. Prof. Antonio Almeida de Barros Jr.

JAVA Programmer - Objetivo do Curso. Pré-requisito do Curso. Conteúdo Programático do Curso

Folha 4.2 Análise sintática ascendente

Aplicações Web com Servlets e JSP

Manual de Utilização da Biblioteca VisPublica

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata

O que é o JavaScript?

PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Especializado Web Programmer. Sobre o curso. Destinatários. Pré-requisitos. Tecnologias de Informação - Web e Mobile. Promoção: 15% Desconto

Linguagem de Programação III - PHP

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

4ª Edição Pablo Dall Oglio

Java. Guia do Programador. Peter Jandl Junior. Novatec

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 1. Fazer o download da última versão do site da Sun 2. Copiar os JARs das bibliotecas desejadas para o diretório WEB- INF/lib/ da sua aplicação Web 3. Incluir em cada página que usa os tags: <%@ taglib uri="uri_da_taglib" prefix="prefixo" %> 4. 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>

Exercícios Use os tags de lógica <if> e <foreach> para remover as expressões condicionais e iterações das páginas da aplicação de mensagens