WebWork - WebWork

Webové práce
Vývojáři OpenSymphony
Stabilní uvolnění
2.2.6 / 21. července 2007  ( 2007-07-21 )
Napsáno Java (programovací jazyk)
Operační systém Cross-platform
Typ Webový rámec
Licence Licence Apache 2.0
webová stránka www .opensymphony .com

WebWork byl webový aplikační rámec založený na prostředí Java vyvinutý společností OpenSymphony, který se spojil do současného rámce Struts2 . Byl navržen tak, aby zlepšil produktivitu vývojářů a zjednodušil kód. WebWork byl postaven na vrcholu XWork , který poskytoval obecný rámec vzorů příkazů i kontejner Inverze ovládání .

WebWork poskytl podporu pro vytváření opakovaně použitelných šablon uživatelského rozhraní, jako jsou ovládací prvky formulářů, motivy uživatelského rozhraní, internacionalizace , dynamické mapování parametrů formuláře na JavaBeans , ověření na straně klienta a serveru atd.

Cíle a přehled designu

Ve standardní webové aplikaci Java EE klient obvykle odešle informace na server prostřednictvím webového formuláře . Tyto informace jsou poté předány Java Servletu, který je zpracovává, interaguje s databází a vytváří odpověď ve formátu HTML , nebo je předán dokumentu JavaServer Pages (JSP), který prolíná HTML a Java kód, aby bylo dosaženo stejného výsledku. . Oba přístupy jsou často považovány za nedostatečné pro velké projekty, protože kombinují aplikační logiku s prezentací a ztěžují údržbu.

Návrháři WebWork se pokusili pochopit, co považují za omezení existujících rámců, a pracovat na jejich odstranění. Podporuje převod typů, pokračování a zachycovače. WebWork také podporuje technologie s více pohledy, jako je JSP, rychlost a FreeMarker.

WebWork byl navržen a implementován s konkrétní sadou cílů:

  • Web Designer se nikdy nemusel dotýkat Java kódu
  • Vytvořte pro aplikaci více „webových skinů“
  • Změňte vzhled a dojem
  • Změnit rozložení na dané webové stránce
  • Změňte tok mezi webovými stránkami
  • Přesuňte * existující * datové prvky z jedné stránky na druhou
  • Integrace s různými back-end infrastrukturami
  • Opětovně použijte komponenty
  • Proveďte internacionalizaci (i18n) webové aplikace
  • Udržujte API malé a věcné
  • Schopnost rychle se učit WebWork tím, že umožňuje volit všechny oblíbené funkce
  • Umožněte vývojáři zvolit, jak implementovat co nejvíce, a zároveň poskytnout výchozí implementace, které ve většině případů fungují dobře.

Životní cyklus

Architektura WebWork byla založena na vzorech MVC Framework, Command a Dispatcher a na principu Inverze kontroly. Životní cyklus požadavku WebWork začíná, když kontejner servletu obdrží nový požadavek. Nový požadavek je předán sadou filtrů nazývaných řetězec filtrů a odeslán na FilterDispatcher. FilterDispatcher předá požadavek ActionMapper, aby určil, co je třeba s požadavkem udělat. Pokud požadavek vyžaduje akci, odešle objekt ActionMapping zpět na FilterDispatcher. Pokud ne, ActionMapper vrátí prázdný objekt, což znamená, že není třeba provádět žádnou akci. FilterDispatcher předá požadavek a objekt ActionMapper ActionProxy pro další akci. ActionProxy vyvolá správce konfiguračních souborů, aby získal atributy akce, která je uložena v souboru xwork.xml a vytvoří objekt ActionInvocation. Objekt ActionInvocation obsahuje atributy jako akce, kontext vyvolání, výsledek, výsledný kód atd. Správce konfiguračních souborů má přístup k těmto konfiguračním souborům a je používán ActionProxy jako brána do konfiguračních souborů. Objekt ActionInvocation má také informace o zachycovačích, které je třeba vyvolat po nebo před provedením akce.

ActionInvocation vyvolá všechny zachycovače uvedené v objektu ActionInvocation a poté vyvolá skutečnou akci. Po dokončení akce získá ActionInvocation kód výsledku akce z provedení. Využívá kód výsledku akce k vyhledání příslušného výsledku, kterým je obvykle stránka JSP, šablona rychlosti nebo šablona volného značení spojená s výsledným kódem. ActionInvocation také provede zachycovače znovu v opačném pořadí a vrátí odpověď jako HttpServletResponse.

Sloučení WebWork / Struts

27. listopadu 2005 oznámil vývojář WebWork Patrick Lightbody, že se WebWork spojí do Struts 2. [2] Zatímco další hlavní vydání (WebWork 2.2.x) vyšlo pod názvem WebWork, všechny budoucí hlavní revize (jmenovitě 2.3 .x a dále) by byly složeny do Struts2.

Ted Husted, vývojář společnosti Struts, v e-mailu uvedl, že WebWork je velmi podobný Struts 1.x a udělal určité věci lépe než Struts. Zdůvodněním Husted i Lightbody bylo, že kombinace technologie WebWork s komunitou Struts bude přínosem pro oba projekty.

Licence

WebWork používá softwarovou licenci OpenSymphony, která je upravenou (a plně kompatibilní s) softwarovou licencí Apache .

Viz také

Reference