9 Aralık 2021 Perşembe

Java Server Pages - JSP

Giriş
JSP dosyası src/main/webapp/WEB-INF/jsp/ dizinine yerleştirilir
Jsp tag'leri şöyledir
<%= ...%>
Nesnelere şöyle erişilir.
<h1>${message}</h1>
JSTL - Jakarta Standard Tag Library
jsp içine yazılan Java kodunu html gibi yazabilmeyi sağlar. JSP ile kullanılan Java nesneleri bean olmak zorunda

Maven
Şu satırı dahil ederiz. Bu kütüphanelerden herhangisi birisi olur
<dependency>
  <groupId>org.glassfish.web</groupId>
  <artifactId>jakarta.servlet.jsp.jstl</artifactId>
  <version>2.0.0-M1</version>
</dependency>

<dependency>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>apache-jstl</artifactId>
  <version>11.0.0.beta2</version>
</dependency>
Kütüphaneler şöyle
core Tags :  http://java.sun.com/jsp/jstl/core
fmt Tags : http://java.sun.com/jsp/jstl/fmt
function Tags : http://java.sun.com/jsp/jstl/functions
sql Tags : http://java.sun.com/jsp/jstl/sql
xml Tags  : http://java.sun.com/jsp/jstl/xml

core Tags variable,url management, flow control içindir
function Tags string manipulation içindir
fmt Tags message,number,date formatlama içindir

Core Tags
Core JSTL taglerini almak için şöyle yaparız.  Burada c ön eki core anlamına geliyor. Diğer kütüphanaler için fn, fmt, x, sql ön ekleri kullanılıyor. taglib ise bir JSP directive
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE html>
...
Bazı metodlar şöyle
catch
choose
forEach
forTokens
if
import
otherwise
out
param
redirect
remove
set
url
when

c:cout
Örnek 
Elimizde şöyle bir kod olsun
<%
String name = request.getAttribute("label").toString(); out.println(name) %>
Buna erişmek için şöyle yaparız
<c:cout value="${label}"/>
Örnek
Şöyle yaparız
If you are using Java Server Pages (JSP), you need to be aware that JSP templates do not 
escape dynamic content by default. Let’s say that you want to display a message this way:

<h1>${message}</h1>

You will need to use the <c:out> tag or fn:escapeXml() function to escape potentially dangerous content in untrusted input:


<h1><c:out value="${message}"/></h1> <h1>${fn:escapeXml(message)}</h1>

c:forEach
Örnek 
students listesi üzerinde dolaşır
<c:forEach items="${students}" var="e">
  ${e.name}<br/>
</c:forEach>
c:if
Örnek 
Şöyle yaparız
<c:if test="${requestScope.isGeoRedEnabled && isAdmin}">
  ...
</c:if>


Hiç yorum yok:

Yorum Gönder