Nastavte tomu controlleru <property
name="sessionForm"><value>true</value></property> tim bude command
objekt ulozen na session.
Co se tyka druhe otazky tak tam je to myslim takhle:
Session se prenasi budto URL rewitingem a nebo pres cookies. V pripade
prvniho k tomu dojde pokud uzivatel zkopiruje URL (musi obsahovat
jsessionid) z jednoho okna do druheho.
Pri pouziti cookies by mela byt omezena platnosti v ramci instance
prohlizece (nenastavuje se expires). Cili druhe okno neuvidi na susenku,
kterou pouziva prvni okno.
Nevim jak kolegove, ale defaultne tohle neresim...
Goo GGooo napsal(a):
Zdravim,
V potomkovi SimpleFormControlleru ve Spring Frameworku vytvarim model
(HashMap) a na konci metody onSubmit() volam:
return new ModelAndView(getSuccessView(), "model", model);
To funguje v pohode a ve View, coz je JSP stranka, muzu k promenne
model pristupovat.
Ovsem moje puvodni predstava byla pouzit redirect, abych mel "hezke" URL:
return new ModelAndView(new RedirectView(getSuccessView()), "model", model);
coz ovsem nefunguje. Mozna celkem logicky - precejen klient mezitim
musi udelet jeste jeden request a server by ten model musel nekde
drzet.
Napadlo me dat ten model do "session", ale jednak nevim jak to ze
SimpleFormControlleru do session dostat (ale na to bych nejspis
prisel, kdybych to tak skutecne chtel udelat) a druhak by tam byla
moznost race condition, kdyby uzivatel mel aplikaci otevrenou treba ve
dvou oknech jednoho browseru zaroven. Pak by se i pri dvou odeslanych
formularich zaroven v session uchovala jen jedna verze modelu, coz je
sice malo pravdepodobny, ale konec koncu mozny.
Jak se takovahle situace bezne resi?
Diky
Goo
--
S pozdravem Roman "Dagi" Pichlik
/* http://www.sweb.cz/pichlik/ Blog pro kodery */