W SEAMie ważne miejsce zajmuje JSF i RichFaces. Dzieki temu można korzystać z jednej, bardzo potężnej broni przy projektowaniu strony: szablonów (templates). Szablony umożliwiają zastosowanie tego samego kodu wizualnego w wielu różnych miejscach naraz. Wszelkie poprawki wprowadzone do szablonu będą widoczne wszędzie tam, gdzie ten szablon zastosowano.
Przykładowo, zapewnie w twojej aplikacji będzie wiele stron z tabelami. Gdybyś chciał wprowadzić nową możliwość do nich (np. przeskakiwanie do wybranej strony tabeli), bez szablonów musiałbyć poprawiać po kolei ręcznie każda tabelę w aplikacji. Jest to zbyteczny nadmiar niepotrzebnej roboty.
Szablony są także wykorzystywane przez SEAMA i generatora (przykładowo view/layout/menu.xhtml czy view/layout/edit.xhtml). Jest także mozliwe stosowanie szablonu w szablonie.
A więc, jak użyć szablonu? Szablon zapisuje się w osobnym pliku xhtml na ścieżce view/layout. Jako przykładu użyjemy szablonu, który będzie wstawiać tekst do panelu oraz miał jako parametr tytuł panelu. Tak, oczywiście mozna od razu użyć panelu, ale to ma być jedynie prosty przykład użycia. :)
Oto zawartość pliku template_panel.xml:
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich">
Tag
1. Na osobnej podstronie, którą później się włączy w główną stronę:
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.com/products/seam/taglib"
template="../layout/template_panelxhtml">
2. Albo też wprost na stronie:
...
...
Przede wszystkim należy zwrócić uwagę na atrybut template w tagu
Tag
Za pomocą tagu