Introdução às bibliotecas JSTL
(JSP Standard Tag Libraries)
Felipe de Almeida Leme
! " ! #$ % & ! ' % () * + ,-. % / 0 12 '3 45 687 % ( (, #9 & ! : , % 9 & ! ! ; ) ! $ # < 7 # , ! ( = , >, ? , % 9 & ! ! ); ! $ # < 7 # , % ! ; + ! $ # % $ / ' , @ # A % $ # , 6 B * ' ! $ + # A # ! & 5 $% $ , ( (! $ A % $ = , >, CED C F ! @ ! , 9 ! 9 ' % 9 * @ + % $ B < # % $ ) , $ , , G $ *9 + ' % 9 * @ + % $ ! 9H # 9 + $ * + % $ = , >, ) , $ , , B ! ! & G B ' % @ , I % $ , & % $ $ ! * @ , $ & , $ ! > #9 + , = , >, 4 , , J # ! 5 , @ ! 9 + $ , + ! % = , >, K ! LM M ? 4 ! ( I $% # & # > # & * , @ & % = '5
N OQP RS T U V S WP OQX TY Z\[ ] S Y Z\[ W ^ _ `_ N O W Z Ta N b ced f gih j k l m l h n o j pqj rs s hj m p j k t h u rv r wo x r k m p j s yEz w{ y z | ced f gih j k l m l h n h } g ps ~ p fh f k h v h x p ~hj m p j u w z h s } j p n r j p q r f l r p n p c pd u rv jr h ~ p f v h x q hj r x ~h x r s p n hj r p n r rv rQ x l k g p f k j l } d l n p j ~j r r r u rv r rq r l fh h s } j p l f n l v l n d r x n p u g o h ~hj k n r u c w | r f p n h h ~hj l f l r ps u rv r ps k h f p x pq l r u w o r x h k j r f k h f p u rv r fh w
¡ ¢ £8¤ ¥ ¦ §¤ £8¨ © ¦ ¤ ª ¤ « ¬ § ®¯ °± ®¯ ² ¦ ³
<%@ page import="java.sql.*,java.text" %>
<%try {
Connection con= DriverManager.getConnection(...);
...
ResultSet rs = st.executeQuery("SELECT a.field1, a.field2...
FROM Tabela a");
%>
<table>
<tr>
<td>Usuario</td><td>Data de cadastro</td>....
</tr>
<% DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
while (rs.next()) {%>
<tr>
<td><%= rs.getString(1) %></td>
´µ ¶ ·¸ ¹ º ¶ »8¼ ½ ¶¾ ¿¼ »8À Á ¾ ¼  ¼ ·Ã ¶Ä ¶ ¿ Å ÆÇ ÈÉ Å ÆÇ Ê¸ ¾ ¶ Ë ¼ Ì · Í Â È Î Å ÆÇ ÏEÐ Ï Ñ Å Æ ËÒ Î Å ÆÇ Ï Ð ÓÔ Ó Ð Õ Ñ
<%@ page import="java.sql.*,java.text" %>
<%try {
Connection con= DriverManager.getConnection(...);
...
ResultSet rs = st.executeQuery("SELECT a.field1, a.field2...
FROM Tabela a");
%>
<table>
<tr>
<td>Usuario</td><td>Data de cadastro</td>....
</tr>
<% DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
while (rs.next()) {%>
<tr>
<td><%= rs.getString(1) %></td>
<td><%= df.format(rs.getTimestamp(1)) %></td>...
</tr>
ÙÚ Û Ü Ú ÝÞ Ûß à Úá â ã â ä Ú ä Þ Ù Þ ã8å á â ä Ú ä Þ æç Ú Ü â á â ä Ú ä Þ è Þ Û Ü ç Ú ã âé Úê ë å ì Þ ß íÚ Û Ü Ú ÝÞ Û ß î Ú âï Ú ã Þ Ý â ð â ã â ä Ú ä Þ ì â ñ â á ò ã ä Ú ä Þ ä Þ óÚ Û ò Ü Þ ê Û ë å î Ú âï å Þ á Û Ú ôß ò ã Ú óÞ Û Ü å õ ç Þ òß å ö Ú ò Ü ç Ú Ü Ú óÞ Û Ü å ä Þ Þ ïá Þê ÷ Þ ß
ø û ý þ ý !" # $ %& ' $)( *+ ,-. .0/ / /21 3 & 4 3 !5 ! 1 67 8 1 % ' * , '9 : $0; ( * " * =< " - & 49 > 7? ? 9 6 $ 7? 5 ! ' ( * 67? *@ ! ! A 7 & ' 69 ( * ( '9B & 9 4 1 " 9 C ' $ % & 9 D@ * 4 *E < * < " - B & 9 'F 5 ! ' ( * ' 4 * < AG HG >I ! 1 : $ 9 # @ JLK ! 1 : $ 9 # @ M 1 1 1 NO PQ I ! % 9 # ! ! . " - B & 9 'F < ! %# 9 < '< @ < R 4 & ! ' $ 7 . @ < @ < S ! ! @ 9 6! @ ! 4 '7 . @ < 1 1 1 1 . '< " -# 7 7 , O 9 4 & # 4 5 ! ' ( * ( ' 4 < * # $ ? 9 ( * # * < '< @ < ( #$ ? 9 1 " 9 A ' $ ? " D JE < . @ < @ < " -: 7 ' 8! 5 ! # & 9 ( * ( #$ ? 9 1 " 9 I $ 89 4 ! 8, D JE =< * . < . @ < 1 1 1 . '< 1 1 1 1 . ! % # 9 < . " 49
ø û ý þ ý TU V W U XY VZ [ Y \] ^_ Z Y `U _ U a b ^ Y V W _ Y c de f X ^ g U hU Y ij [k l V cU `Z m \ U nY V W ^ o _ Y mZ ^ p U c f \ f e U e Y e Y nU V m W Y V a b ^ q ^ n W _ U W U nY V W ^ e Y Y r Yc a s Y Z t V W Y X_ U a b ^ c ^ n tu l Z u Y Z hU V W U XY V Z v ^ n ` \ Y r f e U e Y VU f n ` \ Y nY V W U a b ^ v de f X ^ e U j U X w x yz t c ^ n ` \ Y rU u Y ` \ ^{ nY V W u Y Z c _ f ` W ^ _ h f U j k u | c_ f ` \ Y W Z VY Yc Z Z } _ f ^Z c ^ n Yc _ W U ~ _ Y V c f U j Y n ` ^ e Y e Y Z Y V h ^ \ h f nY V W ^ z ^ m cU Y Z W _ m W m_ U ` _ c ^ V Z W _ m e U `U _ U W U _ Y ~ U Z } Z f cU Z f f \ W b
¡ ¢ ¢ £ ¤ ¥ ¢ ¡ ¡ ¦ §¨ ©
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="fmt" %>
<sql:query var="usuarios" dataSource="${dataSource}">
SELECT a.field1, a.field2... FROM Tabela a
</sql:query>
<table>
<tr><td>Usuario</td><td>Data de cadastro</td>...</tr>
<c:forEach var="linha" items="${usuarios.rows}">
<tr>
<td><c:out value="${linha.nome}"/></td>
<td><f:formatDate value="${linha.dataCadastro}" /></td>...
</tr>
</c:forEach>
</table>
ª« ¬ « ®¯ ¬° ± « ² ³ ´ ³ µ « µ ¯ µ ¯ ³¶ · ´ ¯ ¶ ¯ ¬ « ¸ ¹º »¼ ·½ ¯ ° ° ³ º ¬ ¾ « ¬ ®¿ « ®¯ À » ¾ Á  ¯ ¶ ·º µ ¯ µ ¯ ° ¯ ¬Ã º ´ à ³ ¶ ¯ ¬ º » ° ½ ¿ ¿ ½ « Ä Å ° ³ ²« ·½ º ¬ « Æ « µ ½ ¹ º µ « · ´ « « Ç º ½ ¶ « È É ³ · ´ « ° ³ ¶ · ´ ¯ ¶ ¯ ¬ « ¸ Ê ¯ ° ·º ° ° Ë Ã ¯ ³ ° Ì ¯ ° à « ¬ « ®¯ ¬ ° Ì ¯ ·¯ ¬ µ Í ¬ ² ³ « µ ¯ « µ ¯ ½ Í ¬ ² ³ « « º ·« µ ½ ¹ º Î « à « Ï ¯ « ¬° µ ¯ ·½ º ·½ ³ ¯ µ « µ ¯ ° Ð ¹º ·¯ ½ ¶ ³ ¯ ³ ¬Ã º ²« ¸ ¹ º µ ¯ ¶ Ñ º µ º ° » ¾ Ò µ µ
ÓÕÔ Ö ×Ø Ù Ö ÛÜ ÝÞß à à áâ ã äå ãæ çå æ ß è Û ä é ê á ëì á â í ß îå à ï ß í å æ à ð â Þß ñ â Þ òå í óô ä õö ä ÷ å æ ì á ë ø å ì á ï å í â Þ à è ÷ ä ø é ùúû
üþý ý
<%=((Usuario)request.getAttribute("usuario")).getGrupo().getNome()%>
<c:out value="${usuario.grupo.nome}" />
ü ü ü ÿ ýpage,
request, session, application
! "#
out, set, remove, catch
$% ! & ' " ! ( ) * + ! , + * - ! ! . & * / & * - ! & #
if, choose, when, otherwise
$0 ! - " ! . - ! . & - & * - ! & " . , & ! 1 2 % ! & ' " ! ( ) * 34 5 #
import, url, redirect, param
$/ ! " & 6 87 . ! * - ! & ! ! 34 5 9 ' ! . ! : ! - . ' . 7 * ! ' ; ! ! < ! . " : -! . ' & : . >= ! . ! ? ! "@ A
B C D EF G HJI K
forEach, forTokens
L B C D EF M N EO I PO I Q D G R D SD T N M D U N V D D E W C D SD S C EX C X EF S8Y O I W Z D O N P D W C I S U D [ F \F]<% Object[] arr = ..;
for (int i = 0; i < arr.length; i++) { %>
...
<%= arr[i] %>
<% } %>
<% Collection c = ..;
for (Iterator i = c.iterator(); i.hasNext();) { %>
...
<%= i.next() %>
<% } %>
^J_ ` a bc dfe g hi j k l jm no jlp m k p p qm h g _ l p ` r
<c:forEach var="item" items="${colecao}">
...
<c:out value="${item}" />
</c:forEach>
st u
w
xy
z
{
setLocale, bundle, setBundle, message,
param, requestEncoding
| }~> z z {timeZone, setTimeZone, formatNumber,
parseNumber, formatDate, parseDate
| z 8 z
query, update, transaction, setDataSource,
param, dateParam
¡ ¢ £ ¡¤ ¥ ¦ § ¦ ¨© ¦ ª« ¡ ¬ ¦ £ ¦ « ª ® ¯ « ° « ± ± ª £ ¢ « ± ® ² ¦ ¨ ¢>³ ¦ ª« ± ® ¨ £ ¦ ® ´ ª ® ® ¦ ® ¨ £ ¦ µ « ® µ ª« ± ® ¨ £ ¦ ® ¶ ¦ ª ¢ ¨ ¡ ± £ ² ¦ ¨ ¢>³ ¦ ¢ ± ® · ¸ ®8¹ ¦ £ ¦ ¨ ¢>³ ¦ · ¸ ® ¡« · ¸ ® µ µ ¦ µ « ® ² ¦ ¨ ¢>³ ¦ º » ¢ ¦ ® « ¼ ¦ · ¸ ® µ ¶ « ¡ ¦ £ ¦ ± ® ¦ ª ¢ « ± ¦ ¨½J¾
¿ À
Á
parse, out, set
ÂÃÄ Å ÆÇ È É Ä Ê Ë ÃÌ Í À Î ¾¿ ÊÄ Ï Æ ÊÇ É À Ï8Ð ÀÑ Æ Ò Æ Å Í ¾ ÄÓ É ¾ ¿ Í À À É À Ê À Å Ô ¾ Ï8Ð Ä Ô ¿ Æ Ò È Ô ¾ Ï À Ô Õ8Ö À × ¾ È Í À Î Æ Å Æ Å Í ¾ Ä¿Ó Æ Ø Ó À Æ Ï Ù É ÈÑ ¾ Á
if, choose, when, otherwise, forEach
ÂÚ À ¿ Ê Æ Ô À Ê ÊÄ Å Æ Ç È É Ä¿ ¾ Ë Ã Ì À ÀÑ ÀÕ È Ô Ä¿ ¾ È Å Û ¾ Ä Ü Ý À Ï Õ ¾ Ê Ò Ä Ï À À Ê ÀÑ Ç¿ À Ï Ï Ý Ï Ë Ú Ä Ô Þ ß ¿ Ä Å Ï Î ¾ ¿ ÊÄ Ü Û ¾ à Ë áÌ ß Á
transform, param
Â Ù Ä Õ Æ É Æ Ô Ä Ê ¾ È Ï¾ Í À Ë áÌ ßâ â åçæ èé êJë ì ë í î ï ðñ òï óô õ ö÷ ô ó ø ï ù ï úï ð ìúï î ë ô ì ï ô î ì ûü ý ï ô õ ö÷ ô ô ï ð ô ì ú ûþ ÿ ï î ô ö ú ì ûþ î ì ï ï ë íü ë ð ï úï ü ý ï ô ù ï ú ó ð þ û ÿ ë ü ó úë ô ó ó õ ö÷ òô ï ô ì ú ûþ î ô û ð û î ë ü ó ù ï òô ó ù ë ô î ë ô ÷ ï ì ð û î î ï ù ë ÿ û ø ô ë íü ë ð ï úï ü ý ï ô ù ï ú ó ð þ û ÿ ë ü ó úë ô ó ó õ ö÷ òô ï î ë ô í ó þ ìï ð û î û ù ë ô
! #" " $ % & & & & & & ' & ( ) & ( * + ,- ! " /. 0 $ 1 * & & ( * . 32 4 ! 5 " 5 " 4 6 0 $ % & & ' 7 & 8 2 2 2 4
9 :; < < @ A @ B A ; C/D E F G FH I J/K F L IM I F E F N J F K I G IO PK M I M Q I M I G R ST U V W XY Z [\ X X ]_^ X `ba cd e c Zf ^ Zg ] d [ W Z h i J M PD H j E I N H D R ST U k I G F l K J mon l D M L I l Fp M q r M l FK s L J M DP H j E I N H D R St u v w k I Gx n F N x n IK N n p KF q y Fz J N J l F Fz M I M D F D m { I l D M I G | l D L D M } PD J M L J M P IH M F n M D L I M z K J P N I l M R St ~ M D L F z D H E IH D R F E F I FH M P KF F Fz M I M KF PK D PK J I L F L I M r O I G P N D a
<%= usuario.getNome() %>
a${usuario.nome}
¡ ¢ ¡ ¢ ¤£ ¥
“${usuario.nome} ${usuario.sobreNome}”
¦ ¢ § ¡ o¨ ¡ ¥ © ª« ¬ © ® ¬¯ ° ® ®¯± ²³ ² ´page
µrequest
µsession
²¶
aplication
· © ª« ¬ © ® ¬¯ ° ® © ¬ ¯ ¬ ¸ ¬ ¹ ¬ ° ª ° ® ° ® º ª» ² ¸ ¼ ® º ²¯ ¬½ ³ ¹ ¾ ± ¬ º ²¯ ´ ½ ª ¬ ²« ³ « ± ® ® ° ¿ÁÀ ± ¬ ª ·  ¢Ã Ä Å Æ ¡ ¢ Ç È ÉËÊ Ì Ì Í ÏÑÐ Ò_Ó ÕËÖ Ò ÏÙ ÚÛ Ü Ý Þ â Ú Û Ü
Nome
Tipo
Descrição
Equivalente JSP
Exemplo
pageContext
PageContext
ã äåæ çéè ê ë æ ì ë íîðï äåæ ç èê ë æ ì ë ñpageScope
Map
íîðï äåæ òéó èïæ ô õ ö õä÷ ø è ñrequestScope
Map
íî ÷æ æ ù õ ö ë ò ó èïæ ô õ ö õä÷ ø è ñsessionScope
Map
íî ö æ ö ö ø èê ò ó èïæ ô õ ö õä÷ ø è ñapplicationScope Map
íî äï ï ú ø ó ä ë ø èê òéó èïæ ô õ ö õä÷ ø è ñparam
Map
ûüýþ üÿ ü û ü ü û ü íîðï ä÷ ä ê èæ ö õä÷ ø è ñparamValues
Map
ûüýþ üÿ ü û ü ü û þ üÿ ü íîðï ä÷ ä è ë è ñheader
Map
ûüýþ üÿ ü ü ü û ü íî æ ä æ ÷ è ö ë ñheaderValues
Map
ûüýþ üÿ ü ü ü û þ üÿ ü íî æ ä æ ÷ ä ú õ æ ö è ö ë ô ñcookies
Map
ûüýþ üÿ ü üÿ íî ó è è ø æ ô õ ú ë ø è ó æ ö öè ñinitParam
Map
íî ø ê ø ë ã ä÷ ä ô ä ø ú ò õ ï è÷ ë æ ñ !" ü ü ü # $ %JSP
& û ! þ ÿ $ % üÿ ' $page
$ ü ü # ( & û ! þ ü ü*) & +, -. , & û ! þ ÿ ûüýþ ÿ / 0 üÿ ' $request
$ ü ü # ( & û ! þ ü ü*) 1 , 23 , .4 -. , & û ! þ ÿ ÿ üÿ ÿ 0 üÿ ' $session
$ ü ü # ( & û ! þ ü ü*) 1 , 23 , .4 -. , & û ! þ ÿ $ ' / 0 üÿ ' $application
$ ü ü # ( & û ! þ ü ü*) 1 , 23 , .4 -. , ûüÿ ÿ $ û 5 ü ûÿrequest
ûüÿ 6 $ ÿ ÿ $ û 5 ü ûÿrequest
ûüÿ ÿ û ! þ ÿheader
HTTP
ûüÿ 6 $ ÿ ÿ û ! þ ÿheader
HTTP
Cookies
request
û 5 ü ûÿ ü ' 87 / 0 $ % $ ü ü # ü . ü û9 ü ü # ü : û ü ü û ü;< = >< ;? ; @ ;? ? > @ ;? ? >< ? CED FEG H FEI D G JLK D I K MN J D KM G O P QRS T TU V*W X U W X Y S Z Q Z S T Z S U [\ S ] U T ^_ P QRS T TU Q `*a Z Y RS T Z S R U b S c d S T eEf H K Mg N h i F jlk K F G m N G g N H K jlk K F G npo K hI q D G
${param[“nomeUsuario”]}
// pagina.jsp?nomeUsuario=fulano
${paramValues[“autor”][0]}
// palestra.jsp?autor=Felipe&autor=Michael
${usuario.endereco.rua}
// <%= usuario.getEndereco().getRua() %>
${usuarios[5].endereco['rua']}
// <%= usuarios[5].getEndereco().getRua() %>
r vw xt y vt xw zE{ | } ~ } |E
+ - * / div % mod
== eq != ne < lt > gt <= le >= ge
|E && and || or ! not empty
{ L } { ~ |E { ~ ¡ { l ¢ |
null
£p¤ ~ ¡ ${ projeto.numeroHoras * tabelas['projeto'].fatorRisco }
${(x gt 0) && (x < 10)}
${ !(empty usuario.endereco) }
¥¦ §¦ ¨ § ¦ ¦ ¥ ª « ¥¦ ¬
1)[ ] .
2)( )
3)-(unário) not ! empty
4)* / div % mod
5)+ - (binário)
6)< > <= >= lt gt le ge
7)== != eq ne
8)&& and
9)|| or
¯ °u± ²³ ¯ ´± µE¶ · ¸E¹ º » ¶ ¼ ½¾ ¿LÀ ¾ Á  À à ¾ Ä ÅEÆ ¶ à ¶ ÇÀ · à ¾ ¿ À À È ÉÀ ¼ Ê À Ä Ë » º Ⱦ ɾ · ¿ ¸ É ¸ ¾ ·¶ » Ì Ã À Æ ¶ ¼ Ê À Ä ÍÎ Ï Ä
Ð ÑÒ ÓÔ ØÙ ÚÛ Ü ÝÞ ßáà â ãä ã å æ ãç è ãé ê ëìé í í îï é é ê æ ð é ï ìé í ç åòñ ã ó ï ô õ Ü Ý öá÷ õ à Ú â
value
ø ù ú ûýü þ úÿ þ ú ù ú û ú üdefault
ø ù ú û üþ ü ü ú û úÿ þ þ üþ ú ü ÿ ú üvalue
ÿ ú ù ú ü ünull
escapeXML
ø û ú ü ü ú û ú ü ÿ þ ú ú þ ÿ ÿ ú ÿ ù ÿ þ ü þù ü ÿ ú û þ à Ü à õ â ã ñ ì æ ð ç ñ ïdefault
"
#
$% &
')(
<c:out value=”literal”/>
<c:out value=”${usuario.nome}” default=”guest”/>
<c:out value=”${usuario.nome}”>
guest
</c:out>
<c:out value=”” escapeXml=”false”>
Exemplo do uso de <i>escapeXml</i>.
</c:out>
* +, -. 132 45 6 798 :<; = >@? A BDC ? EF G H EI > ? J K GF GI B L F ? HM E J NI E NI B ? > G >@? > ? J K E O P ? Q E R S T 6 7 U<V T ; = 4
var
W XY Z[ \^] _ ]` a b _ [ cvalue
W _ ] c Y` ] d[` ] e ` a fg h \ Y i _ ]` a b _ [ cscope
W [ dj Y kY l Y kj a Y X] cm \ ] _ ]` a b _ [ c lpage –
_ ] c Y` \ [ n ] g c eporequest
osession
Y gaplication
mtarget
[property
q Y f r [ e Y [ ` k Y ` k a [ \^] \^[ l ] Y a X _ s d \^[var
m t ; 6u ; vw T w = x G Q I B O J Q Evalue
y z } z
~
} z
)
<c:set var="nome" value="Felipe"/><br>
Variável
nome
: <c:out value=”${nome}”/><br>
<c:set target="${usuario}" property="nome"
value="${nome}"/>
Propriedade
nome
do objeto usuário:
<c:out value=”${usuario.nome}”/><br>
3 9 < ¡ ¢ £ ¤ ¥<¦ ¤
var
§ ¨© ª« ¬^ ® ¯ ° ± ® « ² ³« ¯ ¯ « ª© ® ° ¬^scope
§ « ³´ © µ© ¶ © µ´ ° © ¨ ²· ¬ ¯® ° ± ® « ² ¸ ¹ º» ¤ » ¼ ½ ¾ ¿ ÁÀ  à Ã
Æ
ÇÈ É Ã Å Ê ÃË
Antes da remoção: <c:out value=”${nome}”/><br>
<c:remove var=”nome”/>
<c:out value=”${nome}” escapeXml=”false”>
Variável <i>nome</i> foi removida do escopo!
</c:out>
Ì ÍÎ ÍÏ Í Ñ 3 9 < ÒÓ Ô Õ×Ö Ø Ó Ö ÙÓ ÚÛ Ò ÚÜ Ý9Þ Þ ÒÞ Ø Ø ß à Ó áÞ ÒÞ Ø ÔÞ à Ó Õ Ó â £ ¤ ¥<¦ ¤
var
§ ã äå æ ç ã è éê ëì í æ ëî ä éï ð ñ è èò í ëì ë ñ è ì çôó æ î ä êpage
ï ð õö è å è í è ÷ èå ç ä èø í èù ú ëüû ý ä ò ë î ú ë ò è þ ä ñ è ÿ æ î æ ñ ä ð ä èø í èù ú ë ò èå ç æ ó î ëå ä ñ ä û ¸ ¹ º» ¤ » ¼ Þ ÒÞ Õ Ù Ô Õ Ó â Ò Ö Ó ÚÛ Ò ÚÜ Ú Ú Ø Ý Þ ÒÓ Ô Õ Ö ÓØ à Ó Ô Ú Ó Õ Ó â
<%-- O seguinte trecho gera exceção, já que a
propriedade NOME não existe na classe usuario
--%>
<c:catch var=”excecao”>
<c:set target="${usuario}" property="NOME"
value="${nome}"/>
</c:catch>
Exceção:
<c:out value=”${excecao}”>nenhuma</c:out>
<br>
!#" $&% ' () (* + ,.-/ * /01 / 2 - ,.-3 - 1 (4 - 5 5 ( - () 1 0 ( 5 5 6 / 2 ( , ( 5 , ( 7 /0 8 (0 2 -2 ( 9 0 -: ; ! <&= ; % '
test
> ?@ AB ?C C DFE G C ?B H ?C H G I Gvar
> J GB K L J ? MN E AO K E P G MQ G B ?O ? R ?B E J G M E B I G ?@ AB ?C C D Escope
> ?C O E AE N E AO K E P G MQ I G J GB K L J ? Mtarget
?property
S E R T ? H E ? AB E AB K ? I G I ? N GE K P J UVC I ?var
Q W % X % Y[Z ; Z ' \ ]^ /* / - 5 (0 () (* + , -2 / 5 ( - () 1 0 ( 5 5 6 / , ( 5 , ( 7 /0 8 (0 2 -2 ( 9 0-_ ` a b c ` d ef g
<c:if test=”${usuario.nome == 'Felipe' ||
usuario.nome == 'Michael'}”>
Permissão ok!<br>
</c:if>
<c:if test=”${usuario.nome == 'Felipe'}”
var=”acesso”>
Permissão ok!<br>
</c:if>
j kl k m mn op q j kl or p s j kl m t ou n op wx yz { |#} ~& # { | & y
test
¡ ¢£ ¤¥ ¦ ¤ £ ¦ ¢ ¢ §[¨ ©ª « ¬® ¯° ± ² {³ ´[µ y µ ¶ y ·z z ¸ yx ¹®º » ·z ¼ ¸ x ½ ¹ ¾ ¿ À Á ·z ¸ x { ¼ | yx ¹ ¾  º ¿ Á ·z ¼ ¸ x ½ ¹ º Ã Ä Å Æ Ç È ·z ¸ x { ¼ | yx ¹ º Ã Ä ·z ¼ ¸ x ½ ¹ É Ê Ë Ë
Î
ÏÐ Ï Í Í Ñ ËÒ
Ó Ó Ó
<c:choose>
<c:when ”${usuario.nome == 'Felipe'}”>
Permissão ok!<br>
</c:when>
<c:when ”${usuario.nome == 'Michael'}”>
Permissão ok!<br>
</c:when>
<c:otherwise>
Permissão negada!<br>
</c:otherwise>
</c:choose>
Ô ÕÖ Ú Û Õ Ü ÝÞ ßà á â#ã ä&å æ çè çé ê ë.ì í é íîï í ð ì ë.ì ñ î ï ç ç ë ò ð ì óô çõ ç ó ö ò ë çî ì ÷ ø ç ó ù ú û á â ü&ý û å æ ß
items
þ ÿ ÿvar
þ ÿ ÿvarStatus
þ ÿ ÿbegin
end
þ ÿstep
þ ÿ å á å û æ ! "# íé í ì ó çî çè çé ê ë ì ð í ç $ é ì ð ì ò ë çî ì ÷ % í& ' (*) + /) 0 0 1 2 1 243 5 67 8 9 : 7: ; 8 <=?> @ A BDC E @F C G H @I C J F F I H @ I G K E C I L M N @I EPO I Q R C E S G H C T <= > U G H K J C H I K E C I L M N @ I E O I QV J @W C I M G H @C W X Y 67 8 Z 9 ; 8 <= > J @ G E I C R W H @ G [ W C L @ H C I \ F F F @ I E ] I K E C I L M N @ I EPO I QV J @W C I M G H @C W ^ Y _a` b _ :` 8 <= > cQ I R K G H K J I G H @F C I K E C I L M N @I E O I Q ] I \ L K W C K L I _a` de ` 8 <=?> c Q I R K G H K J I G H @F C I K E C I L M N @ I E O I Q ] I [ Q E K W I 67 8 f 7 6 _ ; <= > g I Q @ L H @I E L K A O E @ h*i j kml V @O l n o o F C I E L K A O E @ G N @ c @ K C F C \ J K c K J I H @ Y 67 8 p ; q <= > g I Q @ L H @I E L K A O E @ i l r V @O l n o o F C I E L K A O E @ G N @ c @ K C F C \ J K c K J I H @ Y 67 8 s 8 7 t <= > g I Q @ L H @I E L K A O E @ u v i w V @O l n o o F C I E L K A O E @ G N @ c @ K C F C \ J K c K J I H @ Y
x y z|{ } y ~ {
<table border="1" cellspacing="0" cellpading="0">
<c:forEach items="${pageContext.request.headerNames}"
var="parametro" varStatus="status">
<tr>
<td><c:out value="${status.count}"/></td>
<td><c:out value="${parametro}"/></td>
<td><c:out value="${header[parametro]}"/></td>
</tr>
</c:forEach></table>
<ul>
<c:forEach var="i" begin="1" end="10">
<li><c:out value="${i}"/>
</c:forEach>
</ul>
a ¡a¢ £¢ ¤ ¢ £ ¥¦ §©¨ ª« ¬ ® ¯° a± ² ³ ° ´µ °
items
¶ · ¸ ¹ º¼» ½¾ ¿À ¿Á  à ÄÅ ÆÇdelims
¶ ÈÉ Ê Ë À Ë Ì Í È ¿Î É Á È ¿Á Â Ã Ä Å ÆÇbegin, end, varStatus
Éstep
Ï À É Á À ¿ Á ËÐ Ñ Ë Ò Ë ¾ Í È ¿ ÓÔ É É À Õ Ö× ØÚÙ ¹ ÛÝÜ Ö Þ ß à á â ã ° ã ² ¤ä ¢ å¢ £ æ å ¬ ¢ ® å ¬ ¡ ¢ç è é|ê è ë ìí ê ï ê èð ñò
<table>
<c:forTokens items="a,b;c,d,e,f;g;h" delims=”,;”
var="token" varStatus="status">
<tr>
<td><c:out value="${status.count}"/></td>
<td><c:out value="${token}"/></td>
</tr>
</c:forTokens>
</table>
ó ø ùú ûü ý þaÿ ü ý ü ýú þ ýú ü ü þ ý ! " # " $% & ' ý þ ( û
name
) *+ ,-. + /01 2 ,-3 1 +value
) 40 5 +1 . + /0 1 2 ,-3 1 + 6 ý 87 7 9 "value
: ;< = > BDC EF G HJI KL M NO PQ R SQ TU G HJV W OX YOX X Z [ \ Q [ ]_^ R SQ `a b c U G H de U L E M
value
f g h ikj l m h no p q l r i h s t g h j u h vkw j i u s h xvar
f g h l t y g r i q j z{ t j | h i~} { hw j j t s t m j no p w l r y t l z rw w h | h z y t | h xk u r l r{ r v r l y h no pscope
f rw { j zj q j z{ t j | h i x m h lg h t y g r icontext –
{ j | s r s j q j z{ t j | h i x m h no p L G L 8 U W M \ Q Z F M G ^ Y N P ^ [Q P Z
URL direto na página:
<c:url value="hello.jsp"/><br>
URL com parâmetros atribuída a uma variável:
<c:url value="/hello.jsp" var="url">
<c:param name="nome" value="Felipe"/>
<c:param name="sobreNome" value="Leme"/>
</c:url>
<c:out value='${url}'/>
<br>
¢¤£ ¥D¦ §¨ © ªJ« ¬ ® ¯° ± ² ¯° ³ ²´ µ¶ ´ ³ · ² ° µ ¸ ° ¹º ¯ ´ » ¼° ¯ ½_¾ ¶ ¶¯ ´ ¿ ¸ ¯ ¶ ÀÁ  ¹ ¶ ¸ ¯ ¶ Ã Ä ¼ ± ° ¿ Å ´ ³ Ŷ µ ± ´ ÆÇ Ç È ¯° ± ² ¯° ³ ¸ ½ É Ê © ª ËÌ Ê ® §
url
Í ÎÏ ÐDÑ ÒÓÔ Ô Ó Õ Ö Ô Ó × ÖDØ Ù Ñ Õ Ñcontext –
Ø × Ù Ú Ó Û Ú Ø Ü Ø Ý × Ö Ø Ñ Ù Þß Õ Ñ ÎÏ Ð à ©á â8ã Ê ã ® ä ¸ ¶ å ¼æ ®¨ á ã ã© çè ¹ ´ ¾ ³ ²´ µ¶ ² ¼ ½é ê í ê î ïð ñ ê ò ñ ê ï ó¤ô
<c:redirect url=”http://www.justjava.com.br"/>
<c:redirect url=”/showUser.jsp" context=”teste”>
<c:param name=”user” value=”felipeal”/>
õ ö÷ ùú û¤ü ýDþ ÿ ÿ
value, var, scope
context
! " ! #%$ & # ' #%( ) * " +, - ./0 1 243varReader
5 )6 # 7 5 8 * " 9 #%: " ;=< > <@? A=B ? CED < F D 1 +, 6 ( G 6 7 ) HI JcharEncoding
( K * #%$ " * ( )6 )( 9 6 ! L " : ( # " & ) 8M * " 6 ( , 6 ! " * ) HI J N O P4Q Q R ST U O Q Q VW X T YZ [ ì í [ î ïð ò ì ñ ó¤ô
<c:import url="http://www.justjava.com.br/cabecalho"/>
<c:catch var="excecao">
<c:import url="http://justjava/corpo.jsp"/>
</c:catch>
<c:if test="${not empty excecao}">
Corpo da página não encontrado:
<c:out value="${excecao}"/><br>
]_^ ` ab c b d e ^ fhg f b c b i ]_^ ` ab c b d e ^ fhg j k a g` ^ i ]_^ ` ab c b d e ^ fhg l ^` b i ]_^ ` ab c ^ im n i c ^ a oqp rts g o i u uxw y{z |} w ~ } y
% ¡_¢ £h¤ ¢ £ ¢ ¥ ¦ ¤ ¤ § ¢ ¡ ¥ £h¤ ¢ ¡q¨ © ª £ ¥ « ¡ £ ¤ ¢ ¥ ¡ ¨ £h ¢ ¬ ¤ ® ¤ £ ¦ ¢ ¤ ¯¤ ° ± ²³ ±
value
´ µ ¶ ·¹¸ º ¶» º ¼ ½ ¸º ¾ ¶ ¿ ¶ À ¸type
´ Á ¸ ÂÃ Ä ¸ Å ¶ ·Æ ÅÇ ¾ È ¼ º É Ã Çº º ¼ ÅÃÊ ¸ Ç ºÂ ¼ à ¼ Å ¿ ¶Ë ¼pattern
´ Á ¸ Âà Ä%¸ Å ¶ ·Æ  ¶ À º Ì ¸ À ¼ ½ ¸º ¾ ¶ ¿ ¶Í Ì ¸currencyCode
Î Á ¸ ÂÃ Ä ¸ Å ¶ · Æ Ã Ï À Ä Ë ¸ Ð ÑÒ À ¶ ¾¸ ¼ À ¶currencySymbol
Î Á ¸ ÂÃ Ä ¸ Å ¶ ·Æ » Ó ¾ È ¸ · ¸ À ¶ ¾¸ ¼ À ¶groupingUsed
Î ½ · ¶Ë Á ¸ ÂÃ Ä ¸ Å ¶ ·Æ Ä Å À Ä Ã ¶ Å À ¸ » ¼ ¸ ½ ¸º ¾ ¶ ¿ ¸ À ¼ » ¶ Ó À ¶ à ¸ Å ¿ ¼ º Ô » ¼ ºÂ ¶ ¶ À ¸º » ¼ À ¼Ã Ä ¾ ¶ Ä » É À ¼ ¾ Ä ·Õ ¶ º É ¼ ¿ Ã×Ö
maxIntegerDigits
ØminIntegerDigits
Ù Ú¹Û ÜÝ Þ%Û ßà áâ ã äæå Þ ç Û è é êë Þ éÛ è Ø é ä ß Þ éÛ è ã à Üàì ç í Þ ß ç í Þ ì à ã à èà ä ã¹àmaxFractionDigits
ØminFractionDigits
Ù Ú Û ÜÝ Þ%Û ßà áâ ã äæå Þ ç Û è é êë Þ éÛ è Ø é ä ß Þ éÛ è ã à Üàì ç í î ì à Ý Þ Û ß ê ì Þ à ã à èà ä àvar
Ù ï àì Þ ê ï í á Ú Û Ü Ý Þ%Û ßà áâ ðñ í Ý Û ß ç í ì ê à èà ä ã àscope
Ù Ú Û ÜÝ Þ Û ßà áâ í èÝ Û ÜÛ ã à àìï Þ ê ï í á Úpage, request,
session, application
â ò_ó ô õó öø÷ ù ÷ úû à ç ì Þ ü ñ ç Ûvalue
ý þ ÿ þ þ
<fmt:formatNumber value="9876543,21"
type="currency"/>
<fmt:formatNumber value="12,3" pattern=".000"/>
<fmt:formatNumber value="123456,7891"
pattern="#,#00.0#"/>
<fmt:formatNumber value="123456789" type="currency"
var="cur"/>
ý þ ÿ þ þ þ
<c:set var="reais" value="R$ 5,00" />
<fmt:parseNumber value="${reais}" type="currency"
parseLocale="pt_BR" />
"! # $&% ' () * ) + ) * ) ,-. % / 0 %' ) , + - ) 1%' + % 1% ( ) , 2 ' -$ - ' 3 1 4 ) , + -5 % 1) 5 476 ) 8 9 % + % / , / : ' 4 % % / + -$&% ' ( ) 1 / , * % ( 4 6 ) +;) < = >"? = ! #
value
@ A B CED F BG F H I DF J B K B L Dtype
M N D OP Q D R B CS L B K HUT K Q J H D V W D K XdateStyle
M N D OP QD R B C S O B L F Y D L H I DF J B K BZ Y D L B L B K BtimeStyle
M N D OP QD R B C S O B L F Y D L H I DF J B K BZ Y D L B X DF Bpattern
M NED OP Q D R B C S O B L F Y D L H I DF J B K BZ Y D P G V K D J Q\[ B L DtimeZone
M N D OP Q D R B CS ] Q J H ^ D R H L B L B K B _ X DF B BG F H I DF J B K B L B
var
` a bc d e a f gh ij k d il b gm no f k il p fc erq b st bscope
` h i j k d il b gm f q k ij i t b a bc d e a f ghpage, request,
session, application
m u\v wx v y{z | z }~ l i o p d g d\ b t i
<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate value="${now}" timeStyle="long"
dateStyle="long"/>
"! # 1% - ' * - 2)' ) +;) * ) ,-. % / 0 %' ) , + - ) 1%' + % 1% ( ) , 2 ' -$ - ' 3 1 4 ) , + -5 % 1) 5 4 6 ) 8 9 % + % / , / : ' 4 % % / + -$&% ' () 1 / , * % ( 4 6 ) +;) < = >"? = ! #
value
@ A B CED F BG F H P D R A H F K Q L Dtype
@ N D OP Q D R B CS L B K H T K Q J H D V W D K XdateStyle
M N D OP QD R B C S O B L F Y D L H I DF J B K BZ Y D L B L B K BtimeStyle
M N D OP QD R B C S O B L F Y D L H I DF J B K BZ Y D L B X DF Bpattern
M NED OP Q D R B C S O B L F Y D L H I DF J B K BZ Y D P V G K D J Q\[ B L DtimeZone
M N D OP Q D R B CS ] Q J H ^ D R H L B L B K B _ X DF B BG F H P D R FA H K Q L B
parseLocale
E ¡ ¢ E£ ¤£¥ ¦ ¤ § ¨ © ¤ £ § ª £¥ ¤ « var
ª ¥ ¬ ª £ ¡ ¦£ ® £¥ ¬ ¤ ¯ § scope
¡ £ ¤ § ª ¥ ¬ ª £ page, request,
session, application
¡ u\v wx v y{z | z }~ ® ¥ © ¦ ® value
° °³² ´µ ¶· ¸\¹ º » º ¼½ º ¹ ¾¿ À Á º  º à ¿ Ĺ ¾Å Æ Å Ç ¿ Ä È ¿ É ÉÅ ¾ Â Ê ¿ É Æ Ë Å º ¼ Ê7Ì º ¹ ¾¿ É Æ Ä ¼  º Æ Í ¾Å Æ º Æ ¹ ¹ Å Æ Ä ¼  º Î ¿ Æ Î Å ¾¿ É Æ Ä ¼  º Æ Ï º ¾ Ê ¼ ÀÅ É Â Å Ë Å º ¼ Ê7Ì º ¹ Ê É ÆÅ ¹Ð Ñ Å ÆÓÒ º Â Ä º ¼ Ê7Ì º Ð ÑÅ Æ Å ¹ Å À¿ Ð Ñ Å Æ Î Å Î º Î ¿ Æ Ë Å º ¼ Ê7Ì º ¹ Ô Õ ¹ Ê º Æ ¿ ÖÅ ¹º Ð Ñ Å Æ Î Å Ï ¿ ¹ º À  ¹º É º Æ ¾ Ê ¿ º É ¼
× Ø Û Ü ÝÞ ß àá âã ä åæ ç"è é êë êì í îðï í ñï ò\ó ô îðõ í ö ÷ø ù ú û ø î ò\ü ø ýþ ùÿ ÿ ø í ÿ úÿ ÿ ä å è é â
sql
dataSource
! " #$ %& % !var
' ( ' ) ( *,+ - .scope
' ( 'page, request,
session, application
/ è ä0 è 132 2 4 é ï î õ ò 5 í î øsql
6 7 7 ; < ? @ A 7B
<sql:update>UPDATE usuario
SET total_acessos = total_acessos + 1
WHERE login = ?
<sql:param value="${login}"/>
</sql:update>
C D G HI J KL MN O PRQ ST U VW VX Y Z\[ Y ][ ^`_ a Z\b Y c dRe fg hg ij k l O P mn l T M U
sql
o pq r s tu v wx y r zt z{ z| u s y } ydataSource
o ~ x | p x q y s t p q } z x u y s y x u t | z u r y } xmaxRows
o ~ x | p x q y q , zt x { p x } z p q y r t z s x t q y } x z y | x q r u s ystartRow
o ~ x | p x q y q , zt x } y t p z p t y p q y u z r zt t z s x t q y } y yt y x u r u t p xC D G HI J
var
, ¡ ¢ £ ¢scope
¢ page, request,
session, application
¤¦¥ §¨ ¥ ©3ª « ª ¬ ® ¯\° ± ²´³ ¯\µsql
¶ · ·
º
» ½ ·¾
¿
<sql:query var="clientes" dataSource="${dataSource}">
SELECT * FROM clientes WHERE pais = 'China'
</sql:query>
<table>
<c:forEach var="cliente" items="${clientes.rows}">
<tr>
<td><c:out value="${cliente.nome}"/>, cuidado com a
pneumonia asiática!!!!</td>
</tr>
</c:forEach>
</table>
À Á ÄÅ Ä Æ ÇÈ ÉÊ Ë ÌRÍ ÎÏ Ð ÑÒ Ó\Ô ÕÖ Ô × ÕØ Ù Ò Ú ÛÜ Ô Ø Ý ÛÒ Ó Ø Õ Þß àâá Ú ÛÔ ã ÚÒ Øä å æ Ë Ì çè æ Ï É Ð
value
é ê ë ìîí ï ð í ïñ ë ò,ó ô õ ï í ö Ï Ë÷ Ï ø3ù æ ù ú Ð Ô Ó Ø û ü Ú Ó Õvalue
ý þ þ
<sql:update>
UPDATE usuario
SET total_acessos = total_acessos + 1
WHERE login = ? <sql:param value="${login}"/>
</sql:update>
ÇÈ ÉÊ Ë ÌRÍ ÎÏ Ð !" # $ % '& ( ) * å æ+ , çè æ Ï Ð
-value
. / 0 132 4 5 2 46 0 798 : ; 4 2type
. < 2 6= > 2 ? 0 1@ 5 0 ; :BA ; > 8 : 2 C ; > 8 :D ; 08 6 öFE + ÷ E ø3ù æ ù úG H Ivalue
J K K N O Q R K QS Q T
<sql:update>
UPDATE usuario SET data_acesso = ? WHERE login = ?
<sql:dateParam value="${now}"/>
<sql:param value="${login}"/>
</sql:update>
UWV XY Z ]Y ^_ ` acb dfe gh e ie j kl m h e in o k l p m p e n ql r is out s n e hv w xFy z {| } ~ | { y ' n ql l h h l v p e o j l i p e n q mh ke p l g' f l e j m mh k e p l g m j m qe p l m o n jl | { | { y }W| n ql l h h l v p e o j l i g mh m o n jl i p m h e in o k l p m x { z | { y ¡ ¢ ¡| j m qe i p l i m oun jl i p m h e in o k l p m { | { y y { k m k l o p e o j l i h e k mh jl p l i y y | £ ¡ {| } ~ y ' j p l ie m l k h ¤ n k m ql¥ d m¦ i § m n il p m gl h l o q k l h m j ¨ qe h m p e o j l i k p
© ª ® ¯° ª ¯± ²´³ ° µ ¶· ¸¹º »½¼ ¾ ¿ À ÁÃÂ Ä ÅfÆ Â Ç ÈÉ Æ Ê Ë Â Ì Ë Ê ËÍ Î Æ Î Ï É Å Ê Æ Î Ð Á Â Æ ËÍ Ê Á ÊÑ Ç Î Ð Ò ¸Ó Ô À Õ Ö ×WØ Ù · Ú Â Ò ¸ Ó Ô À Ó Õ·º Û Ú ÏÂ Í Ü Ê Ç Ë Å Ð ÅFÝ Î Á Î Ï Þ Ù º » ß Õ Ù ¿ À ¸
dataSource
à á3â ã ä å âæ ç èé êìë í å æ î ï3ð ñò óô âõ ó ç ë ç ê âõ í äð õ ö ç ï âisolationLevel
à á â ã ä å âæ ç èé æ ÷ ø ð è ï ð å ö â è çù ðæ ë â ï ç ë í æ ç ö çú û â ü ¿º Ö ¿ × Ø Ù Ø ý À ÅfÆ Ï Ë Í Ç þ ÿ Â Ï Ò ¸Ó Ô À Õ Ö ×WØ Ù · Ú Â Ò ¸Ó Ô À Ó Õ ·º Û Ú
<sql:transaction>
<sql:update>UPDATE usuario
SET data_acesso = ? WHERE login = ?
<sql:dateParam value="${now}"/>
<sql:param value="${login}"/>
</sql:update>
<sql:update>UPDATE estatisticas
SET numero_visitas = numero_visitas + 1
</sql:update>
!" # $&% ')( * +-, . /10 , 2 3 415 6 5 7&8 2 9: , , 8 , ; <8 9 6 5 : 8 3 8 = 5 9 / > = , ? +-, , @: 8 <8 8 2 415 6 5 7&8 2 9: , <5 + 9 A 8 B C # $ D)E C ( * !
dataSource
F GIH JK L H MN OP QSR T L MU VIW XY Z[ H \ Z N R N Q H T \ K W W ] JH T R N V Hdriver/url/user/password
F G H JK L H MN L ^ P _ N OIH T W ^ \^ N V H ^ JW O H Z T L _ W T ` N MN U W T JN T N H a R W T N K H MW ] b Hvar
F _ N T L c _ W O G H JK L H M N OP d \W K H M R W T c H Z N R N Q H \ T K Wscope
F G H JK L H MN OP W ^ K H JH V N N_ T L c _ W O Gpage, request,
session, application
P egf hi f jlk m k no 0 A 8 2 6 / ? /gp 5 + 8q r r u v v r x y x y t z {| r}
<sql:setDataSource dataSource="jdbc/DB" />
<sql:setDataSource var=”ds”
driver=”com.mysql.jdbc.Driver”
url=”jdbc:mysql://localhost/mysql” user=”system”
password=”manager”/>
~ ~ 1 1 - - 1 ¡ ¢£ ¤¥ ¦ § ¨
© «1¬ ® ¯ ° ± ° ¯² ³ ´&µ ¶1· ® ¯µ ¸® ¹ º ² ³ ´ µ »¼ ½¾ ¿ ¿ ¿ À Á ¬ ² º ² ² · ²  µ ¯²  °gà ² · ® ¬ ®  ® ¯ ° µ ¹² · ®  ® ¸® ¹ Ä µ ¬ º ® ¹ Ä · µ º ® Å ¸ º µ ¯ Å ¸® ¹ Ä µ ÆÇ È «1¬ É ¯ ° ® º ® ÊgË ÌÍÎ Ï Ï Ð1Ñ Ò Ó1Ô ÒÕ ÖÔ Õ Î Â µ ¯²  ² · ² º µ ¯ Å ¸® ¹ Ä µ ¬ ÆÇ È × µ ¬ ¬ Å ° ® Ø · ® ¬ ¬ Ù&® ¬ÛÚ Ü Ð Ò Ý Ð Ò Õ º ® Þ² · ° ß Þ® ° ¬ Ú ± Å ¹ ³ Ù ® ¬ ² º · ´ µ Ú ± Å ¹ ³ Ù&® ¬ ® Ø Ä ® ¹¬ à Þ® ° ¬ ® º ® ± ° ¹ ° ³ ´ µ º ® ÒÔ Î á Ï ÔÌ Î â Ï
ã ê ë ì íî ï ð&ñ ò)ó ô õ÷ö ø ùú ûüý þ1ÿ ù ù ï ð ó í ô
xml
! " # $ %'& ( )+* , -* $ .var
scope
! / 0 . 1 / 2 1 03 4 2varDom
scopeDom
/ 65 7 1 / 2 1 0 2 / 8 $ (:9 ; <>= 9 -8? 9 @ 8= A? * & #systemId –
BC D / / E /filter –
E / 0 ! 8 $ ( 9 F? G 9 H , F 9 IJ KL % G # * $ . 0 / M ó ïN ó OQP P R ô ù ù ö S TU ö T S ö ùV W [ W \ V] ^_ [ W`
<c:import
url="http://www.justjava.com.br/palestra.xml"
varReader=”xmlReader”>
<param name=”id” value=”666”/>
</url>
<x:parse xml=”${xmlReader}” var="documento"/>
<c:import
url="http://www.justjava.com.br/palestras.xml"
var=”xml” filter=”${filtroPalestra}”/>
a bc de ikj lm n oqp rs t uv u w x uy z u{ | }~{ q { x z }~ x z { ~{ y w u u } x u n o s t l
select
escapeXML
¡ ¢ £ ¤ ¥ ¦ ¡ § ¥ ¦ ¨ ¥ ¤ ¡ ¦ ¨ ¤ ¡ ¡ ¤ © ¤ ¥ ¡ ¥ ¨ ª « ¬ © ¥ © ¬ ® ¨ ¯ s n° s ± ²t y x wx´³ u µ ¶ ¶ ¹ µº ¸ » ¼h½
<c:import
url="http://www.justjava.com.br/palestra.xml"
var=”xml”/>
<x:parse xml=”${xml}” var="documento"/>
<x:out select=”$doc/titulo”/><br>
<x:out select=”$doc/autor”/><br>
¾ ¿À Á ikj lm n oqp rs t ÅÆ Å Ç È ÅÉ Ê ÅË Ì ÍÎË Ï Ï ÐqÑ Ë Å Ò Î È Ó É È Ñ ÎË Ï É Ç Ò Å Ô Ñ Õ É Ê Å Æ ÅÎ È Ö×Æ Ë Ç Ô Ë Ë ÏØ Ñ ÍÑ n o s t l
select
ÙÚ ÛÜ ÙÝ Ý Þß escapeXML
àáâ ã ä ß Ûå æ ßç â áè æ ç é æ å â ç é ß Ý Ù å â Ü â å ê ÙÜ ÙÝ ÙÝ Û Ùå æ â æ Ý é Ùë Ùì Ý ÙÜ Ýí î Ý ê æ ê í ï é ß Ývar
ç ß ì Ù é â ë â Ü æ ð ë Ù áñ í Ù Ü Ùå Ù î ÙÜ ð ß ë â á ß Ü é â ÙÚ ÛÜ ÙÝ Ý Þßscope
ÙÝ å ß Ûß ä ß Ûå æ ßç â áè é â ë â Ü æ ð ë Ù á ¯ s n° s ± ²t ò Ð Ñ É Ò È Ç È´ó Å Ô Ñô õ ø õ ù ôú ø õ ûhü
<c:import
url="http://www.justjava.com.br/palestra.xml"
var=”xml”/>
<x:parse xml=”${xml}” var="documento"/>
<x:set select=”$doc/titulo” var=”titulo”
scope=”session”/><br>
<x:set select=”$doc/autor” var=”autor”
scope=”session”/><br>
ý þÿ ! " # $ % & '( & ( ) # *+ #
select
, -. /0 -1 1 243 56 7 8 9: -; -1 ;-var
, <3 = -: >? >0 @ A ? -BC 3 /D @ 3 < > BE FG - 0 -D -H -0 A 3 ? > B 3 0 : > -. /0 -1 1 243 : -; -1 ;-scope
, -1 D 3 /3 C 3 / D @ 3 < > B E : >? >0 @ A ? -B I J K " # "L M ' N & (O P QSR P T OU V
<c:import
url="http://www.justjava.com.br/palestra.xml"
var=”xml”/>
<x:parse xml=”${xml}” var="documento"/>
<x:if select=”$doc/[titulo='JSTL']”>
Introdução às bibliotecas JSTL
</x:if>
Y Z[ \ ] ]^ _` a Y Z[ _b ` c Y Z[ ] d _e ^ _` gh ij k lm no p q rs tvu rw sx s yu z t {}| ~ r t { w s r r yu s k l o i p
select
4 ¡¢ £ £ ¤ o k¥ o ¦¨§ i § © i p ª « p j ¬ o o ih ® s ¯ r pª « ° ¬ h ± ²³ ´ µ pª « o ¬ h k ° l ih ²¶ ® ³ µ ª « p ° ¬ h ± ® · u yu s rx ¸ y q s t u ¹ qs z t u yu z t { | º u r » ux ¼x t s t { x s ª « p o ¬ h k ° l ih ® · u yu s rx ¸ y q s t u ys ru z z q ª « p ° ¬ h ± r ½ s s w { ys tvu¾ ¿ ¿  ¾Ã Ä Á Á Å ¿Æ Ç Ç Ç
<c:import
url="http://www.justjava.com.br/palestra.xml"
var=”xml”/>
<x:parse xml=”${xml}” var="documento"/>
<x:choose>
<x:when select=”$doc/[titulo='JSTL']”>
Introdução às bibliotecas JSTL.
</x:when>
<x:otherwise>
Palestra de outros autores.
</x:otherwise>
È ÉÊ Î ÏÐ Ñ ÒÓ ÔÕ Ö ×Ø ÙÚ Û ÜÝ Ü Þ ß Üà á Üâ ã äåâ æ æ çè éê ë ì íîï ß ä ß}ð Ü â á ñ ï â åâ ï è å ñ Ü ñ ò è â Þ â â á ñ ï è æ óô õ ö â ß ï â å Ü÷ â æè øvå â è åâ à æ Þ ï Ü ò è ò â æ æ Üâ ã äåâ æ æ ç è ù ì Ö × úû ì Ú Ô Û
select
ü ýþ ÿ ý ývar
ü ý ý ÿ ý ý ý ÿ ÿ ý ÿ ý ý ý ý ý ý ! " # $ ý ýþ ý ý ý% & ')( * & + %, ( . /0 1
<c:import
url="http://www.justjava.com.br/palestra.xml"
var=”xml”/>
<x:parse xml=”${xml}” var="documento"/>
<x:forEach select=”$doc//autor”>
Autor: <x:out select=”@nome”/><br>
<x:set select=”@nome” var=”autor”/>
</x:forEach>
<x:forEach select=”$doc//autor” var=”autor”>
Elemento autor: <c:out value=”${autor}”/><br>
</x:forEach>
2 7 8:9 ;< = >@? AB C DE FHG IKJ L MON P Q C R =S T ; U B =V W XE N MON Y Z[ N E \ ]J^ _ \N I ^ ` M J I ^ J [ D Y ` ^ \J a b ` c R = > de R B C ;
name
f gh ij k h lmn o ij p n hvalue
f qm r hn k h lm n o ij p n h s B =t B u S RKS v C J I ^ Z F E I `value
w xy z|{ }~ { : @ K ¡ ¢O£ ¤ £ £ ¥ ¦ § ¨ ©ª ¨
xml
« ¬ ®¯ °± ² ³ ´µ ¶:· ¸±¹ ³ ¹ · ² ¸ º ¹ · ° ¬ xslt
« » ¼K½ ¾¿ » À ¿ ¿ ¼ ´ Á ¶ÂxmlSystemID
« ÃÄÅ Æ ¬ ± ² ³ Æ º Æ ® · ² ¬ ¬ ®¯ °± ² ³ ´µ ¶xsltSystemID
« ÃÄÅ Æ ¬ ± ² ³ Æ º Æ ® · ² ¬ · » ¼K½ ¾¿ » À ¿ ¿ ¼ ´ Á ¶Âvar
« Ç · ¹ Æ È Ç ± ÉÊ Ë ® Æ · ² É Ì ¬ ³ Æ Ë ÍÎÏ Ð Ñ ÒÓ Ð Ô ÍÕ Ð Ö ÍÓ ×Õ ØÙ Ú Û ® ² ³ ± ² ¬ ¬ ®¯ °± ² ³ ³ ¹ · ² ¸ º ¹ · ° ¬ scope
« ± ¸ ® Ë Ê Ë ® Æ · ² É Û ¬ · Ç · ¹ Æ È Ç ± Éresult
« Ç · ¹ Æ È Ç ± ÉÊ Ë ® Æ · ² É Ì ¬ ³ Æ Ë ÜÞÝ ßÝ à Ð àÕ á Ð Ú Î Ý Ù â ã ÍÎ Õ Ð ä Ø â × á Ú Ûå ¯ ± ¹ Ë ®± ¸ · ¸¹ È ¹ ± ¸¯ É ³ · ¬ æ èêé ¨ ì î ïð ôw xy z|{ }~ { õ:ö ÷ø ù ú@û üý þ ÿ ÿ ¡ ¢O£ ¤ £ £
Atributos:
xml
– documento XML a ser transformado
xslt
– stylesheet XSLT
xmlSystemID
– URI identificando o documento XML
xsltSystemID
– URI identificando a stylesheet XSLT
var
– variável (opcional, do tipo org.w3c.dom.Document) contendo o
documento transformado
scope
– escopo (opcional) da variável
result
– variável (opcional, do tipo javax.xml.transform.Result) que
processará o resultado
<c:import
url="http://www.justjava.com.br/palestras.xml"
var=”xml”/>
<c:import
url="http://www.justjava.com.br/palestras.xslt"
var=”xslt”/>
<x:transform xml=”${xml}” xslt=${xslt}”/>
<x:transform xml=”${xml}” xslt=${xslt}”>
<x:param name=”maiusculas” value=”true”/>
</x:transform>
$ %& $ ' () *,+ -. / *,0 * -1 2 34 5 687 7 9 : ; ;<>= ? =A@ BC D @ EF G ; 9 HF I C E 7 B ;< B 9 ;< B 7 J ; 2 3K L M 687 7 9 : ; ;,N N N @ < E 9 @ F HO ;< B H ; IQP 7 = R J ;S T @ < B 9 U,V WX 0 * / * 0 -Y Z . / *,+ -1 2 34 5 [ \ ] 687 7 9 : ; ;< E 9 @ F HO ; = ^ F C 7 _ = =? ; E F G GC D R 7` 9 HF EP B B ; a R D = J ;< B H bS T ;R D I Pc @ 6 7 G J 2 -d -e -) -f *,+ X g V hi * X j X -i k * ) . V V . l i X 2 34 5nm o,p q m r s tvu uw x y y{z z z}| ~, , | | ' -k 687 7 9 : ; ;,N N N N F HO ; ; c 9 = 7 6
, , , ¢¡ £¤>¥ ¡ ¦ £ § ¤>¨ ¦© ¡Aª «¬ © ¢¡ £ ¤>¥ ¡ §® ¡ ¡ ¯8° ª « ¬ © ¢¡ £ ¤>¥ ¡ ª £ ¡ © ¡ § ° ± ² ° ª « ¬ © ª ³ ± ´,µ ¶ ´,· ¸ ¹ ´ º · µ » ¸¼ © ¤ « ½ ¦¡ £ § © ¤ « ½ ¦¡ £ ¨ ¦ « ¤ © ¡ ¨ ° ¬ ª «¬ © ª ³ ± © ¤ ° ¡ ± ¾ ¾ © § ½ ¬ ° © ¦ ¤ £ ª « ¬ ©
¿ À#Á Â ¿ ¿Á À Á Ã Ä Å Ã Ä ÅÆ Ç ¿ Â Å Ä ¿ ¿É Ê Ê Ê