Ahoj,
diky za odpoved
add.) JSF a EJB 3.0, tohle reseni mi prijde podobne s tim, ktere jsem
nasel v dokumentu (http://www.eccodynamics.com/tiles/en/articles.jsp)
J2EE Core Patterns and Java Server Faces.
Tam je to udelane nasledovne:
backing bean -> value (transfer) object -> service delegate -> EJB
Backing bean tedy pouzivate jako cistokrevny controller.
Ondřej Fafejta KYBERIE napsal(a):
Zdravím Vás!
Možná neodpovím přímo na Váš dotaz, ale podělím se o své zkušenosti s JSF.
Zkoušel jsem vytvářet backing beany dvěma způsoby.
1. Do JSF kontrolérů jsem přidával klasické atributy typu String, int,
boolean atd...
2. Do JSF kontrolérů jsem přidával atributy jako objekty typu UIInput atp.
Tento způsob využívá např. Creator Studio od Sun-u.
Oběma způsoby lze dosáhnout prakticky stejných výsledků.
Řekl bych, že první způsob je takový přímočařejší, přehlednější a proto
ho všude preferují.
Navíc je možné nastavovat různé listenery - např. valueChangeListener atp.
Zkoušíme kombinaci JSF a EJB3.
Předávání dat mezi JSF kontrolerem a EJB kontejnerem řešíme tak, že JSF
kontroler obsahuje metody pro
zkopírování dat do EJB entity a naopak. Není dobré zpřístupnit celou
entitu do VIEW.
EJB3 obsahuje celou business logiku - jak se má entita uložit, která
pole se mají zkontrolovat atp.
Na druhou stranu JSF kontrolér by měl obsahovat různé validátory, které
zamezí zbytečnému odesílání dat přes RMI do EJB kontejneru.
Mířím k tomu, že JSF kontrolér a EJB kontejner by měl obsahovat stejné
jádro pro ověřování polí.
Např.
Při uložení emailu by se měl zkontrolovat formát emailu jak na straně
EJB, tak na straně JSF (a výsledek by měl být stejný :-)).
Řešíme to tak, že jsme vytvořili statickou metodu, která ověří správný
formát emailu.
Tato metoda se využívá jak v JSF validátorech, tak v EJB kontejneru.
Fafi
Roman Pichlík wrote:
Ahoj,
zajima me nazor na architekturu aplikace, kde je front end tvoreny
pomoci JSF. Nikde jsem nenasel doporuceny postup na propojeni JSF a
business logiky (BL) aplikace. Co jsem tak pochopil, tak existuji v
podstate dve cesty.
1.) via backing bean, ktera tvori v podstate controller,
cili vytvori model beanu (pokud je potreba) a zavola BL
2.) via event listener, ktery zavola BL
Osobne mi prijde udalostni zpracovani mnohem lepsi, ale nikde jsem
nenarazil na ukazku. Zda se ze vetsina clanku o JSF ilustruje priklad
pouziti spise pomoci prvni cesty, ale v backing bean maji primo
business logiku, coz me velice irituje.
Moje predstava je takova, ze UI komponene zaregistruju napr. event
listener pro CRUD operace. Event listener pak bude jednotlive udalosti
delegovat na aplikacni logiku napr getItems, add, delete atd.
Mate s tim nekdo zkusenosti, pripadne hinty?
--
S pozdravem Roman "Dagi" Pichlik
/* http://www.sweb.cz/pichlik/ Blog pro kodery */