Przejdź do treści
Strona główna » Spring w Akcji 2.4

Spring w Akcji 2.4

Spis treści | Spring w Akcji

  1. @GetMapping
  2. kONKRETNE ADNOTACJE

Adnotacja @GetMapping

@GetMapping jest stosunkowo nową adnotacją, wprowadzoną w Spring 4.3. Przed Spring 4.3 można było używać adnotacji @RequestMapping na poziomie metody:

@RequestMapping(method=RequestMethod.GET)

Najwyraźniej @GetMapping jest bardziej zwięzły i specyficzny dla metody HTTP, do której jest skierowany. @GetMapping jest tylko jednym z członków rodziny adnotacji mapowania żądań. Tabela poniżej zawiera listę wszystkich adnotacji mapowania żądań dostępnych w Spring MVC

kONKRETNE ADNOTACJE

Zawsze dobrze jest być jak najbardziej konkretnym podczas deklarowania mapowania żądań w metodach kontrolera. Oznacza to przynajmniej zadeklarowanie zarówno ścieżki (lub odziedziczenie ścieżki po @RequestMapping na poziomie klasy), jak i metody HTTP, którą będzie ona obsługiwała.
Dłuższy @RequestMapping(method=RequestMethod.GET) sprawiał, że kusiło, aby wybrać leniwe wyjście i pominąć atrybut method. Dzięki nowym adnotacjom mapowania Spring 4.3, właściwa rzecz do zrobienia jest również łatwa do zrobienia – z mniejszą ilością pisania.
Nowe adnotacje mapowania żądań mają wszystkie te same atrybuty co @Request- Mapping, więc możesz ich używać wszędzie tam, gdzie w przeciwnym razie użyłbyś @RequestMapping.
Ogólnie rzecz biorąc, wolę używać tylko @RequestMapping na poziomie klasy, aby określić ścieżkę bazową. Używam bardziej szczegółowych @GetMapping, @PostMapping i tak dalej, na każdej z metod handlerów.

Dalsza praca nad projektem

Teraz, gdy już wiesz, że metoda showDesignForm() obsłuży żądanie, przyjrzyjmy się ciału metody, aby zobaczyć, jak działa. Główna część metody konstruuje listę obiektów Ingredient. Lista ta jest na razie zakodowana na sztywno. Kiedy przejdziemy do rozdziału 3, pobierzesz listę dostępnych składników taco z bazy danych.


Kiedy lista składników jest już gotowa, następne kilka linii showDesignForm() filtruje listę według typu składnika. Lista typów składników jest następnie dodawana jako atrybut do obiektu Model, który jest przekazywany do showDesignForm(). Model jest obiektem, który przenosi dane pomiędzy kontrolerem a dowolnym widokiem, który jest odpowiedzialny za renderowanie tych danych. Zazwyczaj, dane umieszczone w atrybutach Modelu są kopiowane do atrybutów odpowiedzi serwletu, gdzie widok może je znaleźć. Metoda showDesignForm() kończy się zwróceniem „design”, czyli logicznej nazwy widoku, który zostanie użyty do wyrenderowania modelu w przeglądarce.


Twój DesignTacoController naprawdę zaczyna nabierać kształtów. Gdybyś teraz uruchomił aplikację i skierował przeglądarkę na ścieżkę /design, funkcja showDesignForm() kontrolera DesignTaco byłaby zaangażowana, pobierając dane z repozytorium i umieszczając je w modelu przed przekazaniem żądania do widoku. Ponieważ jednak nie zdefiniowałeś jeszcze widoku, żądanie przyjęłoby fatalny obrót, powodując błąd HTTP 404 (Not Found). Aby to naprawić, skierujmy naszą uwagę na widok, w którym dane zostaną udekorowane kodem HTML w celu zaprezentowania ich w przeglądarce internetowej użytkownika.

calculations

Pomocne linki

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *