java web 6 jsp expression language taglib parte 2

17
JSP & Servlets Expression Language Técnicas de Programação FA7 Prof.º Eduardo Mendes

Upload: eduardo-mendes-de-oliveira

Post on 26-Jun-2015

689 views

Category:

Software


4 download

DESCRIPTION

Utilização de Expression Language e c:if

TRANSCRIPT

Page 1: Java web 6 JSP Expression Language Taglib parte 2

JSP & Servlets Expression Language

Técnicas de Programação FA7

Prof.º Eduardo Mendes

Page 2: Java web 6 JSP Expression Language Taglib parte 2

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);

}

Page 3: Java web 6 JSP Expression Language Taglib parte 2

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>

Page 4: Java web 6 JSP Expression Language Taglib parte 2

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() %>

Page 5: Java web 6 JSP Expression Language Taglib parte 2

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

Page 6: Java web 6 JSP Expression Language Taglib parte 2

Operador Ponto !  Se a expressão é seguida de um ponto, o lado

esquerdo deve ser um Map ou um bean

Page 7: Java web 6 JSP Expression Language Taglib parte 2

Operador Ponto !  O que há do lado direito deve ser o índice de um

Map ou a propriedade de um bean

Page 8: Java web 6 JSP Expression Language Taglib parte 2

O operador [] !  Isto:

!  É a mesma coisa que:

Page 9: Java web 6 JSP Expression Language Taglib parte 2

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

Page 10: Java web 6 JSP Expression Language Taglib parte 2

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

Page 11: Java web 6 JSP Expression Language Taglib parte 2

Usando o operador [] com um Array

!  No Servlet String[] musicas = {“Andanças”, “Como uma onda”, “Djobi, Djoba”};

request.setAttribute(“listaDeMusicas”, musicas);

!  Na Jsp A música é: ${listaDeMusicas} Primeira música é: ${listaDeMusica[0]} Segunda música é: ${listaDeMusica[“1”]}

A música é [Ljava.lang.String;@d2922dd9

Primeira música é: Andanças

Segunda música é: Como uma onda

Page 12: Java web 6 JSP Expression Language Taglib parte 2

Um índice String é convertido para uma int

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

!  Na Jsp As comidas são: ${comidasFavoritas} Primeira comida é: ${comidasFavoritas[0]} Segunda comida é: ${comidasFavoritas[1]}

As comidas são: [sushi, Massa do Spoleto]

Primeira comida é: Sushi

Segunda comida é: Massa do Spoleto

Page 13: Java web 6 JSP Expression Language Taglib parte 2

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]]} ${musicaFavorita[numeros[0] + 1]} ${musicaFavorita[numeros[“2”]]}

Djobi, Djoba

Blau Blau

Andanças

Page 14: Java web 6 JSP Expression Language Taglib parte 2

<c:if>

Page 15: Java web 6 JSP Expression Language Taglib parte 2

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 == e eq !  Diferente != e ne !  Menor que < e lt !  Maior que > e gt !  Menor/Igual <= e le !  Maior/Igual >= e ge

Page 16: Java web 6 JSP Expression Language Taglib parte 2

<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>

Page 17: Java web 6 JSP Expression Language Taglib parte 2

Atenção

!  Em JSTL,

NÃO EXISTE <c:else>