WebKiv: ArchitekturaModulu |
from Wiki KIVu |
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í
v našich modulech je to
JSP soubory – má tedy odkazovat na impl třídy a obsahovat minimalistický scriptlet. V JSP se používá JSTL.
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é.
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