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


Odpovedet emailem