V Spring MVC je na to milion moznosti.
Na tej zakladnej urovni plati, ze kazdy view je oznaceny logickym menom.
V kontroleri sa napchaju data do modelu a nasledne sa urci logicke meno
viewu, ktory sa ma zobrazit. Mimo kontrolera je nakonfigurovany view
resolver, ktory povie, ktory fyzicky view sa pouzije pre zobrazenie
vysledku.
Skolsky priklad: ak kontroler povie, ze sa ma zobrazit view s logickym
menom "summary", tak je mozne nakonfigurovat napr. taky view resolver,
ktory urci, ze fyzickym viewom bude JSP subor WEB-INF/pages/summary.jsp".
Tym sa zabezpeci, ze kontroler sam o sebe nevie, ktory fyzicky view
(teda ci to bude JSP, PDF alebo Excel) sa ma zobrazit, ale deleguje to
na iny objekt.
RN
On 27. 7. 2011 9:40, Zdenko Vrabel wrote:
Dobry den,
Moju otazku by som chcel smerovat skor k MVC patternu ako ku Jave
samotnej tak snad to nebude vadit. Ak sa nahodou tiez budem pytat
somarinu, tak ma ospravedlnte ale potreboval by som sa len proste v
niecom uistit alebo naopak aby mi niekto povedal ze je to somarina.
Totizto nedavno som premyslal nad MVC patternom (pre web). Totizto
zaujimalo by ma, ci je spravne/nespravne ak v kompetencii controllera
je rozhodovat o tom aky view sa pouzije alebo naopak. Mal by
controller vobec nieco vediet o viewoch? Vysvetlim na priklade. V
dnesnej dobe sa dostavaju do popredia rozne iPhony, Androidy, iPady a
neviem co. K tomu sa zacina aj prisposobovat design niektorych webov.
Ide o to, ze dajme tomu design pre iPad je nieco uplne ine ako design
pre klasicky browser (z pohladu web designera). To ma privadza k tomu,
ze je potrebne riesit aky view sa na zaklade User Agenta pouzije. Moja
otazka je vlastne o tom, ci je spravne mat v ramci MVC nejaky
mechanizmus routingu a Controller by do toho nemal zasahovat (v
podstate len produkuje model) alebo naopak. Takyto mechanizmus
znecistuje MVC/ zvysuje jeho zlozitost a toto by mal riesit prave
controller. Alebo je to uplne jedno? Este doplnim ze hovorim o MVC
vseobecne nie o nejakom konkretnom ako Spring MVC.
Za odpovede vopred dakujem,
Zdenko Vrabel