As JSPs são as páginas dinâmicas do Java e servem para separar a camada de visualização da lógica de negócios. Assim, as servlets recebem as requisições, executam as regras e redirecionam para as JSPs que retornam uma página para o cliente. Com isso, todo aquele trabalho em escrever com o PrintWriter
é facilitado.
A dinâmica das JSPs está em usar scriptlets, expression language e taglibs.
Scriptlet: é um código java escrito entre <%
e %>
dentro das JSPs. Seu uso é desencorajado pois a camada de visualização deveria se restringir a linguagens de marcação.
Expression Language (EL): é uma linguagem que foi criada para evitar a utilização dos scriptlets. É geralmente utilizado entre ${
e }
e avaliam os valores contidos em parâmetros e operações lógicas e matemáticas.
Taglibs: são códigos no formato de marcação que são usadas juntamente com as ELs para dar interação (condicionais, loops, instancia de objetos, …) à pagina. A taglib mais comumente usada é a core
da JSTL (JavaServer Pages Standard Tag Library).
A JSTL pode ser instalada através do site http://jstl.java.net/.
Após inserir no projeto a tablig, podemos utilizar o core
da JSTL adicionando o cabeçalho à pagina JSP.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
O parâmetro prefix
deste cabeçalho será usado como tag na nossa página. O padrão do prefixo é “c” (core
).
Os loops da JSTL são feitos com o forEach
, com parâmetros var
(para variável que armazenará o valor atual) e items
(que receberá a lista a ser iterada).
<c:forEach var="item" items="objeto.listaDeItens">
${item}
</c:forEach>
A condicional do JSTL é feita utilizando o if
passando o parâmetro test
, onde é validada uma expressão (Expression Language).
<c:if test="${ obj.param1 > obj.param2 }">
${obj.param1}
</c:if>