Tags 'Declaration tag' & 'Scriptlet tag'

2 respostas
Leandro_Rocha

Olá pessoal…
Estou com uma dúvida quanto ao uso dessas duas tags do JSP.
Gostaria de saber qual é realmente a diferença entre <%!Bla Bla Bla%> e <%Bla Bla Bla%>.
Qual o uso correto delas, se posso usar apenas uma delas, se são ou não são recomendadas.

Ai vai um exemplo que fiz, mas ainda não compreendi bem a diferença entre Declaration tag e Scriptlet tag:

<%-- 
    Document   : FormularioCadastro
    Created on : Oct 12, 2011, 4:02:48 PM
    Author     : Leandro
    Apenas um exemplo... :)
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page language="java"%>

<%-- Declaration tag --%>
<%!
    private int idade = 0;
%>

<%-- Scriptlet tag--%>
<%
    idade = 18;
    if(idade >= 18) {
        %>
        <%@include file="Formulario.html"%>;
<%
    }
    else {
           %>
           <%@include file="Exato.html"%>
<%
       }
%>

Estou usando corretamente? Tem algumas dicas a mais??
Ah, consegui escrever classes dentro das ‘declaration tag’, isso é aconselhável?

Desde já obrigado… :slight_smile:

2 Respostas

leonardobhbr

Seguinte o arquivo JSP e convertido em um Servlet na sua primeira solicitação, sendo que tudo que estive com a tag

<% %>

sera colocado no metodo _doService do seu servlet as variaveis são locais

e quando vc usa

<%!%>

seria atributos e ou metodos da classe

Não sei se ficou claro mais por exemplo se vc fizer o seguinte exemplo vc vera a diferenca entre os dois

<% int contador = 0;
contador++;
out.write(contador);
%>

e

<%! int contador = 0; %> <%contador++; out.write(contador); %>

Aperte varios F5 no browser e veja a diferença

Leandro_Rocha

Agora eu entendi, quando eu declarar entre <%%> as variáveis são locais e quando declarar entre <%!%> as variáveis são globais.
Obrigado… :smiley:

Criado 20 de outubro de 2011
Ultima resposta 20 de out. de 2011
Respostas 2
Participantes 2