Inspiracja , wiedza , realizacja
Jsystems

W przebudowie

Login



Java

Oracle

Linux

Android

PostgreSQL

Microsoft SQL Server

Zmienne tablicowe

Data dodania: Jun 27, 2016
Data aktualizacji: Jun 27, 2016

Kod źródłowy z przykładami do tego rozdziału możesz pobrać pod adresem:

http://jsystems.pl/storage/spring/springmvc6.zip


Bywają sytuacje kiedy chcesz przekazać przez pasek wiele parametrów, ale ich liczba może być zmienna, a także wartości w tych parametrach mogą występować pojedynczo, lub jako zbiór. Weźmy za przykład wyszukiwarkę na popularnym portalu Allegro. Dajmy na to że szukamy dla siebie samochodu. Korzystamy z wyszukiwarki i wybieramy np markę, model, cenę, pojemność silnika. My się możemy skupić na konkretnym modelu konkretnej marki za określone pieniądze, ale ktoś inny może szukać np samochodów kilku marek, nie określając ceny ani pojemności silnika za to określając przybliżone położenie.... Teraz chcemy zaimplementować taką wyszukiwarkę. Wyobraźcie sobie to drzewo ifów które trzeba byłoby naklepać w zwykłych serwletach. Na szczęście Spring znów przychodzi nam z pomocą. Nasze wywołanie będzie wyglądało mniej więcej tak: http://localhost:6060/SpringMVC6/zs/filtruj/wojewodztwo=mazowieckie,wielkopolskie;marka=BMW

chociaż oczywiście parametrów może być więcej lub mniej, możemy też mieć inną liczbę wartości w poszczególnych parametrach. Zaczniemy od małej modyfikacji w naszym pliku konfiguracyjnym ****-servlet.xml. Linię :


<mvc:annotation-driven/>


przerabiamy na :


<mvc:annotation-driven enableMatrixVariables="true"/>


Dorabiamy kontoler i tworzymy metodę która będzie nam mapowała adres /filtruj/ z parametrami:




Zwróć uwagę, że @RequestMapping uwzględnia parametr ścieżkowy objęty nawiasami klamrowymi {filtry} tak jak w poprzednim rozdziale. Pojawia nam się tutaj też nowy parametr metody @MatrixVariable. Służy on właśnie do odbierania zmiennych tablicowych. Poruszamy się po nich tak jak po każdej mapie, z tą różnicą że dodatkowo każdy element w mapie jest listą (może być jednoelementową listą). Elementy Mapy to parametry, a elementy list przyporządkowanych do tych parametrów to ich wartości. Po uruchomieniu wskazanego wcześniej adresu dostajemy:



Proste, wygodne, skuteczne :)