Zawsze używam podejścia, w którym metody kontrolera zwracają ModelAndView
. Po prostu dlatego, że powoduje to, że metody kontrolera są nieco bardziej zwięzłe. Parametry metody są teraz ściśle parametrami input
. Wszystkie dane powiązane z output
są zawarte w obiekcie zwróconym przez metodę.
Styl wydaje się rezonować z ludźmi, którzy nie lubią aktualizacji parametrów wejściowych do metody. Trzymanie się przekonania, że będzie to stanowić efekt uboczny, niebezpieczny wzór, ponieważ nie można wiarygodnie przewidzieć, co zrobi metoda - Może zwrócić dane w zwróconym obiekcie, lub może zaktualizować wszystko w dowolnym z argumentów wejściowych.
Niektórzy ludzie nadal będą woleli ModelAndView
.
Nowy styl z Model
jako parametrem metody i zwrócony ciąg jako nazwa widoku. Wydaje się, że pochodzi z nieco innego podejścia do projektowania. Obiekty modelu są tutaj traktowane jako rodzaj zdarzeń lub elementów przekazywanych do wielu procedur obsługi przed zwróceniem ich do widoku, w którym są renderowane. Przypomina mi, w jaki sposób odbywają się wydarzenia w świecie AWT/Swing. Ten model jest bardziej spójny z podejściem, w którym wiele programów obsługi może budować na obiektach Model
, aż osiągnie widok.
Tak więc na koniec dnia nie ma wyraźnego powodu, aby krytykować lub promować oba podejścia. Powinieneś używać stylu, który jest bardziej spójny z ogólną filozofią projektowania.
Mam nadzieję, że to pomoże.
To działało dzięki :) Oto mój kod: '@RequestMapping (value = "STB1/home" method = RequestMethod.GET) \t publicznego ModelAndView homeAction() { \t \t ModelAndView MAV = new ModelAndView ("STB1/home"); \t \t return mav; // renderuje /// /src/main/webapp/WEB-INF/jsp/STB1/home.jsp \t} –
Sangimed