Languages
[Edit]
PL

Spring Boot 2 - przekazywanie parametrów zapytań (@RequestParam)

7 points
Created by:
Creg
9600

Celem tego artykułu jest pokazanie, jak w prosty sposób można przekazywać parametry w adresie URL w aplikacji Spring Boot.

Jako parametry przekazywane w adresie URL rozumiemy konstrukcję:

?name1=value1&name2=value2&nameN=valueN

która może się znaleźć w dowolnym adresie URL, np.

https://some-domain.com/some/path?name1=value1&name2=value2&nameN=valueN

Gdzie:

  • ? oznacza początek parametrów,
  • & oznacza separator parametrów,
  • ilość parametrów może być dowolna,
  • przekazywane parametry to:
    Nazwa paramtruWartość paramtru
    name1value1
    name2value2
    nameNvalueN

 

Przaktyczny przykład

W Spring Boot możemy takie parametry przekazywać jako argumenty do metody z mapowaniem, gdy użyjemy adnotacji @RequestParam koło argumentów.

Przykład użycia mapowania:

Przekazywanie parametrów zapytań za pomocą adnotacji @RequestParam w Spring Boot 2.
Przekazywanie parametrów zapytań za pomocą adnotacji @RequestParam w Spring Boot 2.

Przykładowy kod kontrolera:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class ExampleController {

    // http://localhost:8080/api/items?pageNumber=1&pageSize=20
    //
    @RequestMapping("/api/items")
    @ResponseBody
    public Object getItems(
        @RequestParam Integer pageNumber,
        @RequestParam Integer pageSize
    ) {
        return "Parametry: pageNumber=" + pageNumber + " pageSize=" + pageSize;
    }
}

Gdzie:

  • nazwy argumentów pageNumber i pageSize są mapowane na nazwy przekazywanych parametrów w adresie URL,
  • parametry w powyższym przykładzie są wymagane więc jeśli ich nie podamy to metoda getItems() się nie wykona (required=false nie zostało ustawione dla @RequestParam).

 

Konfiguracja parametrów

Za pomocą konfiguracji w @RequestParam możemy:

  • ustawić czy parametr ma być wymagany,
    np. required=true lub required=false
    Uwagi:
    • domyślnie parametry są wymagane (required=true),
    • niewymagany parametr posiada wartość null (required=false).
  • ustawiać domyślne wartości parametrów, gdy nie zostaną przekazane w adresie URL,
    np. defaultValue="value_here"
  • mapować różne nazwy parametrów na różne nazwy argumentów,
    np. name="parameter-name"

Przykład użycia mapowania:

Przekazywanie parametrów zapytań za pomocą adnotacji @RequestParam w Spring Boot 2.
Przekazywanie parametrów zapytań za pomocą adnotacji @RequestParam w Spring Boot 2.

Przykładowy kod kontrolera:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class ExampleController {

    // http://localhost:8080/api/items
    // http://localhost:8080/api/items?author=100
    // http://localhost:8080/api/items?page=1&amount=20
    // http://localhost:8080/api/items?author=100&page=1&amount=20
    //
    @RequestMapping("/api/items")
    @ResponseBody
    public Object getItems(
        @RequestParam(name = "author", required = false   ) Long    authorId,
        @RequestParam(name = "page",   defaultValue = "1" ) Integer pageNumber,
        @RequestParam(name = "amount", defaultValue = "20") Integer pageSize
    ) {
        return "Parametry: author=" + authorId + " page=" + pageNumber + " amount=" + pageSize;
    }
}

 

Zobacz rónież

  1. Spring Boot 2 - umieszczanie zmiennych w ścieżce (@PathVariable)

  2. JavaScript - encode / escape URL characters

  3. Java - encodeURIComponent equivalent in JavaScript

Referencje

  1. Query string - Wikipedia
  2. Annotation Type RequestParam - Spring Framework Docs
  3. Model-View-Controller - Wikipedia

Alternative titles

  1. Spring Boot 2 - przekazywanie parametrów w adresie URL (@RequestParam)
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join