Merhaba, bu yazıda JSP Action Tags‘i ele alacağız. JSP action etiketleri yönlendirme, dahil etme, java beanleri kullanma gibi işlemlerde kullanılır.

Başlıca JSP Action Etiketleri

  • <jsp:include>
  • <jsp:forward>
  • <jsp:param>
  • <jsp:useBean>
  • <jsp:getProperty>
  • <jsp:setProperty>

<jsp:include> Etiketi

Bir JSP sayfası içerisinde başka bir JSP sayfasını çağırmamızı sağlar. Bu sayede kodlarımızı farklı JSP sayfalarına yazarak bölebilir, bir sayfa içerisinde hepsini çağırıp kullanabiliriz.

<%@ include … %> etiketi ile aynı işlevi görür fakat <jsp:include> etiketi ile dahil etme işlemi request(istek) geldiğinde gerçekleşir, <%@ include … %> etiketi ile dahil etme işlemi ise JSP sayfaları Servlet‘e çevrilirken gerçekleşir.

Kullanım:

1
<jsp:include page="Dahil edilecek sayfa adresi"/>

Örnek Uygulama

index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	<jsp:include page="sayfa.jsp"/>

</body>
</html>

sayfa.jsp’yi dahil ettik.

sayfa.jsp

1
2
3
4
5
6
<%@ page import="java.util.Date, java.text.DateFormat" %>

<% 
  	String tarih = DateFormat.getDateInstance(DateFormat.LONG).format(new Date());
	out.println("Tarih :" + tarih);
%>

Ekran Görüntüleri

3

<jsp:forward> Etiketi

JSP sayfasına yapılan bir isteği başka bir sayfaya yönlendirmek için kullanılır. Bu etiketin bir özelliği de yönlendirme yapıldığında adresin değişmemesidir. Örnek uygulamada bunu görebilirsiniz.

Kullanım:

1
<jsp:forward page="Gidilecek sayfanın adresi"/>

<jsp:forward> Örnek Uygulama

index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	<jsp:forward page="sayfa.jsp"/>

</body>
</html>

sayfa.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
   <p>
	index.jsp'den buraya geldik ama adres hala aynı :)
   </p>
</body>
</html>

Ekran Görüntüleri

4

<jsp:param> Etiketi

Bu etiket ile diğer JSP etiketlerine(<jsp:include>,<jsp:forward> vs.) parametre gönderilebilir. Bu şekilde yönlendirilen ya da dahil edilen JSP sayfaları bu parametrelere ulaşabilir.

Kullanım:

1
2
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<jsp:param name="Parametrenin adı" value="Parametrenin değeri" />

<jsp:param> Örnek Uygulama

index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	<jsp:forward page="sayfa.jsp">
		<jsp:param value="Merhaba Dunya!" name="parametre"/>
	</jsp:forward>

</body>
</html>

sayfa.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>
		<%=request.getParameter("parametre") %>
	</p>
</body>
</html>

Ekran Görüntüleri

5

<jsp:useBean> Etiketi

JSP sayfalarında Java Bean‘leri çağırmak için kullanılır. Java Beans konusunu daha sonra detaylı olarak göreceğiz. Şimdi sadece basit bir örnek verelim.

Kullanım:

1
<jsp:useBean id="Beani temsil edecek herhangi bir isim"  class="paketAdi.classAdi" />

Yukarıdaki kod ile kullanacağımız Java Class‘ından bir nesne oluşturmuş olduk. <jsp:setProperty> ve <jsp:getProperty> etiketlerini kullanarak bu nesne üzerinden değer atama(Set) ve değer çekme(Get) işlemleri yapabileceğiz.

<jsp:setProperty> Etiketi

Bu etiket kullanılmadan önce jsp:useBean etiketi tanımlanmış olmalıdır. jsp:useBean etiketi ile belirtilen bean‘in değişkenlerine değer ataması yapar. Adından da anlaşılacaği gibi set metodunun işlevini yapar.

Kullanım:

1
2
<jsp: useBean id="Beani temsil edecek herhangi bir isim"  class="paketAdi.sinifAdi" />
<jsp:setProperty name="useBean etiketinde verdiğimiz id" property="Sınıftaki değişken adı" />

Eğer birden fazla değişkene aynı anda değer ataması yapmak istiyorsak ‘*’ kullanabiliriz.

1
<jsp:setPropery name="useBean etiketinde verdiğimiz id" property="*"/>

<jsp:getProperty> Etiketi

jsp:useBean etiketi ile belirtlilen bean‘in değişkenlerinin değerini çeker. Adından da anlaşılacaği gibi get metodunun işlevini yapar.

1
<jsp:getProperty name="useBean etiketinde verdiğimiz id" property="Sınıftaki değişken adı"/>

useBean, getProperty ve setProperty ile İlgili Örnek Uygulama

index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	<form action="formuAl.jsp" method="post">
		<input name="isim" type="text">
		<input name="soyisim" type="text">
		<input type="submit"> 
	</form>

</body>
</html>

İsim ve soyisim alan basit bir form oluşturduk. Butona basıldığında formuAl.jsp‘ye gidecek. Şimdi bir Bean(Java Sınıfı) oluşturalım.

Kisi.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package deneme;

public class Kisi {

	private String isim;
	private String soyisim;

	public String getIsim() {
		return isim;
	}
	public void setIsim(String isim) {
		this.isim = isim;
	}
	public String getSoyisim() {
		return soyisim;
	}
	public void setSoyisim(String soyisim) {
		this.soyisim = soyisim;
	}

}

Sınıfımızın içerisinde formdan gelen verileri karşılamak için 2 adet değişken oluşturduk.Bu değişkenlerin get ve set metotlarını oluşturduk. Şimdi formuAl.jsp sayfamızda bu bean‘i kullanalım.

formuAl.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="kisi" class="deneme.Kisi"/>
	<jsp:setProperty property="*" name="kisi"/>

	Hoşgeldiniz Sayın
	<jsp:getProperty name="kisi" property="isim"/>
	<jsp:getProperty name="kisi" property="soyisim"/>
</body>
</html>
  • Önce jsp:useBean ile kullanacağımız sınıfı tanımladık ve ondan bir nesne oluşturduk.
  • jsp:setProperty etiketini kullanarak formdan gelen verileri bean’in değişkenlerine atadık. ‘*’ kullanarak tüm değerleri tek satırda atamış olduk. Burada önemli nokta formdaki inputların name değerleri. O name değerleri Bean içindeki değişkenlerin isimleriyle aynı olmalı. Eğer değilse girdiğiniz değeri değil null değeri atar.
  • Hemen altında bean değişkenlerine atadığımız değerleri çekip bir hoşgeldin mesajı oluşturduk.

Ekran Görüntüleri

1   2  

Bu yazıda JSP Action Etiketlerinden en çok kullanılanları anlatmaya çalıştım. Bir sonraki yazıda JSP Expression Tags konusuna değineceğiz. Görüş, öneri ve sorularınızı yorum kısmında belirtebilirsiniz. Hoşçakalın..