Wyjasnienie fragmentu kodu z typem Optional w Springu

0
    @GetMapping("/danie/{name}")
      public String getItem(@PathVariable String name, Model model)
    {

        Optional<Item> item = itemRepository.findByNameIgnoreCase(name.replaceAll("-", " "));
        item.ifPresent(it->model.addAttribute("item",it));
        return item.map(it->"item").orElse("redirect:/");
    }

co robi ten fragment kodu? Na poczatku rozumiem, tworzymy Optionala, szukamy nazwy "name" i zamieniamy "-" na " ", prosilbym o wytlumaczenie co dalej tam sie dzieje . Pozdrawiam

0
 item.ifPresent(it->model.addAttribute("item",it));

To jest na zasadzie, jesli istnieje item, to ustaw jego atrybut w modelu na "item" jesli sie nie myle, ale po returnie co robi map a po nim Od razu orElse to mnie dziwi

3

To jest na zasadzie, jesli istnieje item, to ustaw jego atrybut w modelu na "item"

Tak.

    public String getItem(@PathVariable String name, Model model){
        Optional<Item> item = itemRepository.findByNameIgnoreCase(name.replaceAll("-", " "));
        item.ifPresent(it->model.addAttribute("item",it)); //jeżeli przedmiot został znaleziony, dodajemy go do modelu i na froncie będzie można się do niego odwołać pod nazwą `item`
        return item.map(it->"item").orElse("redirect:/"); //jeżeli przedmiot został znaleziony, pokaż użytkownikowi plik `item.html`, w przeciwnym wypadku przekieruj na `/` (strona główna)
    }
0

Dobra dzieki, jakas zwieche zlapalem : ) , temat zamkniety

1 użytkowników online, w tym zalogowanych: 0, gości: 1