Template rendszerek

Mostanában kedvenceim a szervletek, és emlékszem, mikor kezdtem velük ismerkedni, csak úgy ontottam a out.println("<html>blabla</html>"); sorokat. Azt hiszem más sem volt ezzel másképp. Aztán megírtam a saját kis sablonmotoromat, ez is sokaknak ismerős lehet. Utána ismertem csak meg haladóbb technikákat, melyek különválasztották a megjelenési réteget az üzleti logikától, elválasztották a kódot a HTML tag-ektől. Ilyenek pl. a Tea Framework, a WebMacro, az Elements Construction Set, és az XMLC. A Sun válasza erre a problémára a JSP (JavaServer Pages), mely lehetővé teszi a programozónak, hogy elválassza a megjelenítési és üzleti réteget, de nem kényszeríti rá. Ha a JSP-ben gyakran alkalmazunk Java kódot, és itt valósítunk meg különböző funkciókat, akkor Model 1 technikáról beszélünk, ha szervletek biztosítják ezeket a funkciókat a JSP mögött, akkor Model 2 technikáról. Ezekről bővebben ír az O’Reilly Servlet könyv is.

A következő lépés volt a Swing-ből is ismert Model-View-Controller szemlélet megvalósítása a szervletek terén is, így kialakultak nagyon komplex frameworkök, melyek teljes környezetet nyújtanak szervletek fejlesztéséhez. Többjük több alprojektből is áll. Ilyen például a Turbine, vagy a már említett Struts.

Jelenlegi kedvencem a Velocity, mely egy nagyon jó sablon motor, ami szervletekben és standalone alkalmazásokban is nagyon jól használható. Állítólag WebMacro klón. Saját nyelve van, többet is olvashatsz róla a cikkemben, melyet a főlapomról elérsz.

Itt beszélek még a PULL és PUSH technikáról is, ami ebben a fogalomkörben elterjedt. Az előbbi azt jelenti, hogy a sablon szedi ki az információt az üzleti rétegből, az utóbbi azt, hogy a megjelenő adatokat úgy kell hozzárendelni a sablonhoz.

Most olvastam egy jót: “Of course, there is nothing new under the Sun…“, hehe, Sun, érted?