Anasayfa

C ve Sistem Programcıları Derneği

  • CSD Hakkında
    • Yönetim Kurulu
    • Referanslar
    • Üyelik
    • Adres
    • Kroki
    • İletişim
  • Kurslar
    • Kurs Başvurusu
    • Eğitmenler
  • Seminerler
    • Seminer İste
    • Seminer Ver
  • Kaynaklar
    • Yararlı Linkler
    • Kaynak Kod Arşivi
    • Makaleler
    • Çalışma Soruları
    • Yararlı Kitaplar
    • Dosya Arşivi
    • Döküman Arşivi
  • Duyurular
  • Haberler
  • İş İlanları
    • İş İlanı Gönder
  • SSS
  • Kurs Başvurusu

menü

  • CSD Hakkında
    • Yönetim Kurulu
    • Referanslar
    • Üyelik
    • Adres
    • Kroki
    • İletişim
  • Kurslar
    • Kurs Başvurusu
    • Eğitmenler
  • Seminerler
    • Seminer İste
    • Seminer Ver
  • Kaynaklar
    • Yararlı Linkler
    • Kaynak Kod Arşivi
    • Makaleler
    • Çalışma Soruları
    • Yararlı Kitaplar
    • Dosya Arşivi
    • Döküman Arşivi
  • Duyurular
  • Haberler
  • İş İlanları
    • İş İlanı Gönder
  • SSS
  • Kurs Başvurusu

e-posta ile bilgilendirme.

Derneğimizdeki etkinliklerden haberdar olun!

Haber mektubu üyeliğiniz

Kimler çevrimiçi

Şu an 0 kullanıcı ve 1 ziyaretçi çevrimiçi.
""
dreamhost
Anasayfa

Java ‘da (JSP) Tag Library Oluşturmak

25.05.2010 - 12:23 tarihinde aykut gönderdi
Yazan: 
Aykut Taşdelen

JSP’de var olan hazır tag’lerin dışında programcılar da sık ihtiyaç duydukları yapılar için tag library oluşturup paketleyebilir ve sonra tekrar tekrar kullanabilir. Aşağıda Netbeans kullanılarak içeriği ve boyutu parametrik değiştirilebilen bir başlık kontrolü geliştirilmiştir.

TagLibrary’lere ilişkin bazı belirlemeler (içerik tutacak mı, attribute’leri neler olacak veya zorunlu mu olacak vb) .tld (tag library descriptor) uzantılı xml dosyalarla gerçekleştirilir. Netbeans’te proje ismi üzerine sağ tıklanıp açılan menüden “tag library descriptor” eklenmelidir.

Açılan pencerede isim, lokasyon, prefix ve uri tanımları yapılmalıdır.

Daha sonra projeye bir “tag handler” eklenmelidir bu işlem bir .java dosyası oluşturarak tag’in nasıl handle edileceğini yani sayfada kullanıldığında ne gerçekleştireceğini kodlamaya yarar. Burada sınıf ismi ve paket belirlemelerini yapınız.

Bu aşamada ise tag handler’ın tld dosyasıyla ilişkilendirilmesi, tag ismi ve attribute’lerinin isim ve türleri belirlenir. Böylece tld dosyası aşağıdaki gibi oluşacaktır :

 [Baslik.tld]

<?xml version="1.0" encoding="UTF-8"?>

<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd">

  <tlib-version>1.0</tlib-version>

  <short-name>csd</short-name>

  <uri>/WEB-INF/tlds/Baslik</uri>

  <tag>

    <name>Baslik</name>

    <tag-class>paket.Baslik</tag-class>

    <body-content>scriptless</body-content>

    <attribute>

      <name>size</name>

      <required>true</required>

      <rtexprvalue>true</rtexprvalue>

      <type>int</type>

    </attribute>

    <attribute>

      <name>content</name>

      <required>true</required>

      <rtexprvalue>true</rtexprvalue>

      <type>java.lang.String</type>

    </attribute>

  </tag>

</taglib>

 

Artık baslik.java yani handler dosyası geliştirilmelidir. Handler sınıfları içeriksiz tag’ler için SimpleTagSupport sınıfından türer. Böyle bir sınıfta attribute’ler veri elemanlarına ve setter fonksiyonlara karşılık gelir. Ayrıca doTag() isimli override edilen fonksiyon ise söz konusu tag’in nasıl bir html çıktısı üreteceğinin kodlandığı yerdir.

 

[Baslik.java]

package paket;

 

import java.io.IOException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.JspFragment;

import javax.servlet.jsp.tagext.SimpleTagSupport;

 

public class Baslik extends SimpleTagSupport {

    private int size;

    private String content;

 

     public void setSize(int size) {

        this.size = size;

    }

 

    public void setContent(String content) {

        this.content = content;

    }

 

    public void doTag() throws JspException, IOException {

        JspWriter out = getJspContext().getOut();

        out.println("<h" + size + ">" + content + "</h" + size + ">" + "<hr>");

 

        try {

            JspFragment f = getJspBody();

            if (f != null)

                f.invoke(out);

 

 

        } catch (java.io.IOException ex) {

            throw new JspException("Error in Baslik tag", ex);

        }

    }

}

 

Bu şekilde oluşturulan tag’i bir jsp sayfasında test etmek gerekirse, sayfaya @taglib direktifiyle tag register edilmelidir. Burada uri ve prefix belirlemeleri yapıldıktan sonra söz konusu tag sayfada prefix:TagName sintaksıyla kullanılabilir, inceleyiniz :  

 

 

<%@page contentType="text/html" pageEncoding="UTF-8"%>

 

<%@taglib uri="WEB-INF/tlds/Baslik.tld" prefix="csd"  %>


<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    </head>

    <body>

        <csd:Baslik  content="C ve Sistem Programcilari Dernegi" size="1" />

    </body>

</html>

 Not : Bu yazının word dokümanı halini zip olarak indirebilirsiniz.

Aykut TAŞDELEN

C ve Sistem Programcıları Derneği Eğitmeni

aykuttasdelen@csystem.org

İlgili dosyalar: 
application/zip icon
Javada TagLibrary Olusturmak.zip
  • Yazıcı uyumluYazıcı uyumlu
  • Arkadaşa gönderArkadaşa gönder
  • PDFPDF

Adres: 2.Taşocağı Cd. Oğuz Sk. Barbaros Apt. No: 11/4 PK: 34387  Mecidiyeköy / İSTANBUL Tel: (212) 274 63 60  (212) 274 99 89  (212) 275 88 97  (212) 288 35 20 Fax: (212) 275 88 97 E-Posta: csystem@csystem.org

İçerik yayınları
Fervens Drupal theme by Leow Kah Thong. Designed by Design Disease and brought to you by Smashing Magazine.