JSF Ders30 - Page Template (Sayfa Şablonu)
Page Template (Sayfa Şablonu), bir sayfaya daha önce oluşturulan sayfa/sayfa içeriğini dahil etmeye yarar.
Örneğin birçok sayfada kullanılan bir arama kutusu, her sayfada tek tek oluşturulmak yerine tek bir sefer oluşturularak bu sayfayı/sayfa içeriğini kullanılacak sayfalara kolayca dahil edilir.
Aşağıda bir template (şablon) sayfa oluşturulumu ve onun kullanışı gösterilmiştir.
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> <h:head> </h:head> <h:body> <ui:insert name="d1">default yazı</ui:insert> <ui:insert name="d2">default yazı2</ui:insert> <ui:insert name="d3">default yazı3</ui:insert> </h:body> </html> |
xmlns:ui="http://xmlns.jcp.org/jsf/facelets" template="/templates/sablon.xhtml"> <ui:define name="d1"> test yazisi</ui:define> <ui:define name="d2"> test yazisi2</ui:define> </ui:composition> |
Çıktı
test yazisi
test yazisi2 default yazı3 |
Bilinmesi gerekenler
- Şablon sayfalar için bir klasör oluşturulmalıdır.
- Sayfa şablon sayfayı template parametresi ile belirtmelidir. template="/templates/sablon.xhtml"
- Sayfaya içerik tanımlanması ui:define tagıyla, sayfa şablonuna içerik eklenmesi ui:insert tagıyla sağlanır.
Bu ui:include tagıyla yapılır.
- Tüm kullanıcılara açık içerikler için direkt olarak ui:include tagıyla sayfanın tamamı eklenir.
- Sadece tek kişiye açık içerikler için ui:define tagıyla sayfanın tek bir içeriği eklenir.
- İçerik bazı kullanıcılara açık olacak ise ui:include tagı ui:define tagı içerisinde tanımlanarak kullanılır.
<ui:define name="d1">
<ui:include src="/te/deneme.xhtml"/>
</ui:define>
|
Aşağıda örnek bir program verilmiştir.
test.xhtml (Şablon Sayfa)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head> <title>test.xhtml</title> </h:head> <h:body> <ui:insert name="no1">Default Sablon Oge 1</ui:insert> <br /> <ui:insert name="no2">Default Sablon Oge 2</ui:insert> <br /> <ui:insert name="no3">Default Sablon Oge 3</ui:insert> <br /> <ui:insert name="no4">Default Sablon Oge 4</ui:insert> <br /> </h:body> </html>
sayfa4.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"> <p style="color: red;">sayfa4</p> </ui:composition>
index.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> <h:head> <title>index.xhtml</title> </h:head> <h:body> <ui:composition template="/templates/test.xhtml"> <ui:define name="no1">Yeni 1 nolu öge</ui:define> <ui:define name="no2">Yeni 2 nolu öge</ui:define> <ui:define name="no4"> <ui:include src="/sayfa4.xhtml"></ui:include> </ui:define> </ui:composition> </h:body> </html>
Yorumlar
Yorum Gönder