Tag (etiket) yaratmak için etiket dosyalarını ekleneceği tags klasörünü WEB-INF klasörü içine açılması gerekir. WEB-INF/tags klasörüne aşağıdaki gibi helloworld.xhtml dosyasını yaratalım :
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<div>
<h:outputLabel value="#{label}"></h:outputLabel>
<br/>
<ui:insert />
</div>
</ui:composition>
Burada label attribute'sini dışarıdan alacağımız belirtiyoruz.
ise elementimizin içeriğinin koyulacağı yerdir.
WEB-INF içinde my.taglib.xml dosyasını yaratıyoruz ve içeriğine yukarıda yarattığımız etiketin adresini veriyoruz :
<facelet-taglib version="2.0"
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-facelettaglibrary_2_0.xsd">
<namespace>http://www.fibiler.com/customtags</namespace>
<tag>
<tag-name>hello</tag-name>
<source>tags/helloworld.xhtml</source>
<attribute>
<name>label</name>
</attribute>
</tag>
</facelet-taglib>
Buradaki etiketlere kullanabbilmek için Web.xml'e aşağıdaki parametrenin eklenmesi gerekir :
<context-param>
<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
<param-value>/WEB-INF/my.taglib.xml</param-value>
</context-param>
Artık etiketimizi bir sayfada kullanabiliriz:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:t="http://www.fibiler.com/customtags">
<t:hello label="Fibiler">
Bu bir custom tag testidir
</t:hello>
</html>
Sayfa çalıştırıldığında Fibiler başlığı ve altında Bu bir custom tag testidir yazısı görülecektir.