Hlavní menu

Nástroje

WebKiv / ArchitekturaModulu

View (print) - Edit page | Recent changes - Page history

Updated 26 July 2010, 17:36 by PremekBrada

Idea a motivace: v OpenCms nejde dost snadno integrovat servlety tak, aby byly součástí modulu, byly snadno nalezitelné a konfigurovatelné. Proto se pro zpracování formulářů použijí „cílové“ JSP stránky, které na začátku volají třídu zpracovávající požadavek – tzv. Mediator.

Zatímco v servletové aplikaci je postup zpracování

kontejner → servlet → request dispatcher . forward → JSP

v našich modulech je to

opencms → JSP → (scriptlet) mediator .handle → (návrat do) JSP

Základní dokumentace

View vrstva

JSP soubory – má tedy odkazovat na impl třídy a obsahovat minimalistický scriptlet. V JSP se používá JSTL.

Aplikační vrstva

Je představována "Mediátory" (podle GoF pattern) tj třídami, které hrají cca roli servletů. Rozhrani IMediator? definuje hlavne handle(...) metody, ktere maji byt analogii doGet() servletu; normalne v modulu je vhodne oddedit od AbstractMediator? a predefinovat jen ty metody, ktere jsou potreba -- normalne staci handle(req,resp) a data pro JSTL posilat pres request.setAttribute.

Trida ModuleBeanFactory? je tovarna na vraceni instanci, ktera uvnitr vola Springovou bean factory; ta je pak konfigurovana pres XML v module-beans.cfg ulozeny v korenovem adresari Java namespace modulu (napr. tedy .../cz/zcu/kiv/osoby/module-beans.cfg). Konfiguracni soubor je standardni Spring bean dependency definition soubor, ale tim ze je umisten v adresari modulu se da s modulem instalovat a není treba pri jeho zmene restartovat Tomcat. Jeho obsah je minimalne takovy, ze každý mediator který má být dostupný v JSP musí být deklarován; využití Spring DI deklarací je nepovinné.

Datová vrstva

Používá se WebKivDb? knihovna (viz ArchitekturaDaoVrstvy), tedy v Mediatorech a FormHandlerech? se volají její DAO třídy z balíku cz.zcu.kiv.db.dao.* a používají doménové třídy z cz.zcu.kiv.db.model balíku. Ty víceméně 1:1 reprezentují entity které definuje DatovyModel.

Knihovna je postavena na Spring JDBC vrstvě, kterou používá pro vytváření dotazů a zpracování result setů.


Zpět na RedSys