JSP & Servlets
Expression Language

Técnicas de Programação
FA7
Prof.º Eduardo Mendes
Servlet
public void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
Cerveja ce = new Cerveja();
request.setAttribute(“cerva”, ce);
RequestDispatcher dispatcher =
request.getRequestDispatcher("cervejas.jsp");
dispatcher.forward(request, response);
}
Código Jsp
Recuperando o atributo

<html>
<body>
Marca da cerveja é:

<%=((Cerveja) request.getAttribute(“cerva”)).getMarca() %>
<br/>

Tamanho da cerveja é:

<%=((Cerveja)request.getAttribute(“cerva”)).getTamanho()%>

</body>
</html>
Código Jsp
Recuperando o atributo com EL

<html>
<body>
Marca da cerveja é: ${cerva.marca} <br/>
((Cerveja) request.getAttribute(“cerva”)).getMarca()

Tamanho da cerveja é: ${cerva.tamanho}

((Cerveja) request.getAttribute(“cerva”)).getTamanho()

</body>
</html>
Substitui:

<%= ((Cerveja) request.getAttribute(“cerva”)).getMarca() %>
Descontruindo a El
! 

Expressões El
!  Entre Chaves
!  Pré-fixadas com um cifrão

pageScope
requestScope
sessionScope
applicationScope
param
paramValues
outros

No escopo de página
No escopo de requisição
No escopo de sessão
No escopo de aplicação
Operador Ponto
! 

Se a expressão é seguida de um ponto, o lado
esquerdo deve ser um Map ou um bean
Operador Ponto
! 

O que há do lado direito deve ser o índice de um
Map ou a propriedade de um bean
O operador []
! 

Isto:

! 

É a mesma coisa que:
O operador []
fornece mais opções

Se a expressão tem uma variável seguida por [],
a variável do lado esquerdo pode ser um Map, um
bean, um List ou um Array
O operador []
fornece mais opções

! 

Se a coisa dentro dos colchetes é uma String
literal, ela pode ser o índice de um Map ou a
propriedade de um bean ou um índice de um List
ou de um Array
! 

No Servlet

Usando o operador []
com um Array

String[] musicas =
{“Andanças”, “Como uma onda”, “Djobi, Djoba”};
request.setAttribute(“listaDeMusicas”, musicas);
! 

Na Jsp

A música é: ${listaDeMusicas}
A música é [Ljava.lang.String;@d2922dd9
Primeira música é: ${listaDeMusica[0]}
Primeira música é: Andanças
Segunda música é: ${listaDeMusica[“1”]}
Segunda música é: Como uma onda
! 

No Servlet

Um índice String
é convertido para uma int

ArrayList comidasFavoritas = new ArrayList();
comidasFavoritas.add(“Sushi”);
comidasFavoritas.add(“Massa do Spoleto”);
! 

Na Jsp

As comidas são: ${comidasFavoritas}
As comidas são: [sushi, Massa do Spoleto]
Primeira comida é: ${comidasFavoritas[0]}
Primeira comida é: Sushi
Segunda comida é: ${comidasFavoritas[1]}
Segunda comida é: Massa do Spoleto
O que vai ser impresso??
ArrayList nums = new ArrayList();
nums.add(“1”);
nums.add(“2”);
nums.add(“0”);
request.setAttribute(“numeros”, nums);
String[] musicaFavorita =
{“Andanças”, “Djobi,Djoba”, “Blau Blau”};

${musicaFavorita[numeros[0]]}

Djobi, Djoba

${musicaFavorita[numeros[0] + 1]}

Blau Blau

${musicaFavorita[numeros[“2”]]}

Andanças
<c:if>
Teste com <c:if> e EL
! 

! 

Operadores Aritméticos
!  Adição
+
!  Subtração
!  Multiplicação *
!  Divisão
/ e div
!  Mod
% e mod
Lógicos
!  And
&& e and
!  Or
|| e or
!  Not
! e not

! 

Relacionais
!  Igual
!  Diferente
!  Menor que
!  Maior que
!  Menor/Igual
!  Maior/Igual

== e eq
!= e ne
< e lt
> e gt
<= e le
>= e ge
<c:if>
teste condicional

! 

No servlet, em um doGet(), com uma chamada
informar.do?sexo=M
String sexo = request.getParameter("sexo");
request.setAttribute("sexo", sexo);

! 

Na JSP

<c:if test="${sexo eq 'M'}" >
O sexo informado é <strong>Masculino</strong>
</c:if>
<c:if test="${sexo ne 'M'}" >
O sexo informado é <strong>Feminino</strong>
</c:if>
Atenção
! 

Em

JSTL,
NÃO EXISTE <c:else>

Java web 6 JSP Expression Language Taglib parte 2

  • 1.
    JSP & Servlets ExpressionLanguage Técnicas de Programação FA7 Prof.º Eduardo Mendes
  • 2.
    Servlet public void doGet( HttpServletRequestrequest, HttpServletResponse response) throws IOException, ServletException { Cerveja ce = new Cerveja(); request.setAttribute(“cerva”, ce); RequestDispatcher dispatcher = request.getRequestDispatcher("cervejas.jsp"); dispatcher.forward(request, response); }
  • 3.
    Código Jsp Recuperando oatributo <html> <body> Marca da cerveja é: <%=((Cerveja) request.getAttribute(“cerva”)).getMarca() %> <br/> Tamanho da cerveja é: <%=((Cerveja)request.getAttribute(“cerva”)).getTamanho()%> </body> </html>
  • 4.
    Código Jsp Recuperando oatributo com EL <html> <body> Marca da cerveja é: ${cerva.marca} <br/> ((Cerveja) request.getAttribute(“cerva”)).getMarca() Tamanho da cerveja é: ${cerva.tamanho} ((Cerveja) request.getAttribute(“cerva”)).getTamanho() </body> </html> Substitui: <%= ((Cerveja) request.getAttribute(“cerva”)).getMarca() %>
  • 5.
    Descontruindo a El !  ExpressõesEl !  Entre Chaves !  Pré-fixadas com um cifrão pageScope requestScope sessionScope applicationScope param paramValues outros No escopo de página No escopo de requisição No escopo de sessão No escopo de aplicação
  • 6.
    Operador Ponto !  Se aexpressão é seguida de um ponto, o lado esquerdo deve ser um Map ou um bean
  • 7.
    Operador Ponto !  O quehá do lado direito deve ser o índice de um Map ou a propriedade de um bean
  • 8.
  • 9.
    O operador [] fornecemais opções Se a expressão tem uma variável seguida por [], a variável do lado esquerdo pode ser um Map, um bean, um List ou um Array
  • 10.
    O operador [] fornecemais opções !  Se a coisa dentro dos colchetes é uma String literal, ela pode ser o índice de um Map ou a propriedade de um bean ou um índice de um List ou de um Array
  • 11.
    !  No Servlet Usando ooperador [] com um Array String[] musicas = {“Andanças”, “Como uma onda”, “Djobi, Djoba”}; request.setAttribute(“listaDeMusicas”, musicas); !  Na Jsp A música é: ${listaDeMusicas} A música é [Ljava.lang.String;@d2922dd9 Primeira música é: ${listaDeMusica[0]} Primeira música é: Andanças Segunda música é: ${listaDeMusica[“1”]} Segunda música é: Como uma onda
  • 12.
    !  No Servlet Um índiceString é convertido para uma int ArrayList comidasFavoritas = new ArrayList(); comidasFavoritas.add(“Sushi”); comidasFavoritas.add(“Massa do Spoleto”); !  Na Jsp As comidas são: ${comidasFavoritas} As comidas são: [sushi, Massa do Spoleto] Primeira comida é: ${comidasFavoritas[0]} Primeira comida é: Sushi Segunda comida é: ${comidasFavoritas[1]} Segunda comida é: Massa do Spoleto
  • 13.
    O que vaiser impresso?? ArrayList nums = new ArrayList(); nums.add(“1”); nums.add(“2”); nums.add(“0”); request.setAttribute(“numeros”, nums); String[] musicaFavorita = {“Andanças”, “Djobi,Djoba”, “Blau Blau”}; ${musicaFavorita[numeros[0]]} Djobi, Djoba ${musicaFavorita[numeros[0] + 1]} Blau Blau ${musicaFavorita[numeros[“2”]]} Andanças
  • 14.
  • 15.
    Teste com <c:if>e EL !  !  Operadores Aritméticos !  Adição + !  Subtração !  Multiplicação * !  Divisão / e div !  Mod % e mod Lógicos !  And && e and !  Or || e or !  Not ! e not !  Relacionais !  Igual !  Diferente !  Menor que !  Maior que !  Menor/Igual !  Maior/Igual == e eq != e ne < e lt > e gt <= e le >= e ge
  • 16.
    <c:if> teste condicional !  No servlet,em um doGet(), com uma chamada informar.do?sexo=M String sexo = request.getParameter("sexo"); request.setAttribute("sexo", sexo); !  Na JSP <c:if test="${sexo eq 'M'}" > O sexo informado é <strong>Masculino</strong> </c:if> <c:if test="${sexo ne 'M'}" > O sexo informado é <strong>Feminino</strong> </c:if>
  • 17.